您的位置:首页 > 其它

try-catch 捕捉不到异常

2014-01-06 14:35 253 查看
code:

int _tmain(int argc, _TCHAR* argv[])

{

cout << "In main." << endl;

//定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块

try

{

cout << "在 try block 中, 准备抛出一个异常." << endl;

strcpy(NULL, "asd");

cout << "在 try block 中, 由于前面抛出了一个异常,因此这里的代码是不会得以执行到的" << endl;

}

catch(...)

{

cout << "在 catch block 中, 处理异常错误。异常对象value的值为:"<< endl;

}

cout << "Back in main. Execution resumes here." << endl;

return 0;

}

但是在2010下编译上面这段代码,异常捕捉不到.

-----解决方案--------------------

这个跟C++的try-catch异常捕获的两种模式有关。同步模式和异步模式。其中前者不能捕获内存访问错误,后者可以捕获内存访问错误。

/EHs
/EHsc是启用同步模式。(同 /GX)

/EHa是起用异步模式。

2010默认是 /EHsc, 改为 /EHa就行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: