看下我的的代码
INT Test()
{
throw
{
异常
}
}
int _tmain(int argc, _TCHAR* argv[])
{
try
{
Test();
                 代码1                   //
}
catch (char* e)
{
cout<<"has a exption";
}        代码2                      //
return 0;
}
当Test();发生异常时 我想问的是代码1,代码2 会不会依次被执行 ?
第2个问题:WINDOWS的结构化异常处理和C++的异常处理有什么区别?

解决方案 »

  1.   

    WINDOWS的结构化异常处理和C++的异常处理不要混合使用!~
      

  2.   

    Windows异常由系统内核代码捕获,然后传递至用户层,多用于非法内存访问、指令错误等,其类型是CPU定义的,参见《X386保护模式编程》。
    C++异常是C++编译器生成的结构(多在堆栈上),是普通的用户层代码,异常类型由用户自定义。
    由于Windows异常处理和C++异常处理均使用堆栈展开,在局部堆栈的使用中存在冲突,一般不能混用。
      

  3.   

    __try{} __finally{}不会检查类内析构以及构造等操作
    但是try() catch()不会存在这样的问题但是C++编译器上的所以异常类型需要你自己定义。
    而且他们之间不能混合使用