您的位置:程序门 -> vc/mfc -> 界面



关于c++的异常处理和windows的结构化异常处理


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于c++的异常处理和windows的结构化异常处理
发表于:2008-01-21 10:30:20 楼主
看下我的的代码
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++的异常处理有什么区别?
发表于:2008-01-21 10:51:351楼 得分:0
windows的结构化异常处理和c++的异常处理不要混合使用!~
发表于:2008-01-21 12:33:592楼 得分:0
windows异常由系统内核代码捕获,然后传递至用户层,多用于非法内存访问、指令错误等,其类型是cpu定义的,参见《x386保护模式编程》。
c++异常是c++编译器生成的结构(多在堆栈上),是普通的用户层代码,异常类型由用户自定义。
由于windows异常处理和c++异常处理均使用堆栈展开,在局部堆栈的使用中存在冲突,一般不能混用。
发表于:2008-01-21 12:50:263楼 得分:0
__try{}   __finally{}不会检查类内析构以及构造等操作
但是try()   catch()不会存在这样的问题但是c++编译器上的所以异常类型需要你自己定义。
而且他们之间不能混合使用
发表于:2008-01-21 14:02:484楼 得分:0
1不会执行,2会执行


快速检索

最新资讯
热门点击