vs2013Release版本为啥不能捕获除以零异常和访问空指针异常

http://www.cppblog.com/vczh/archive/2009/03/05/75565.html
这已经是XP时代的老feature了,主要的意思就是说,你要主动声明你真的想要插入一个异常处理函数,而这不能用普通的C++代码完成。

■网友
应该是优化掉了,x没有使用。
■网友
在工作中,遇到同样的‘除零’问题了,我在VS2010下写了点测试代码如下,或许对你有所帮助:
int a = 10;
int b = 0;
try
{
int nRet = a/b;
}
catch(...)
{
AfxMessage(.....);
}
这样写后, release编译后,死活都不会弹出对话框,软件也不崩溃,似乎什么事情也没有发生。 但是:
【vs2013Release版本为啥不能捕获除以零异常和访问空指针异常】 将 int nRet = 0 放在try之前, 在try里面写nRet = a/b; 会抛出异常‘Integer division by zero’,但是catch模块的对话框也不会弹出。
......
继续查找根源:
在项目属性-\u0026gt;配置属性-\u0026gt;C/C++ - \u0026gt; 代码生成 -\u0026gt; 启用C++异常,选择‘是,但有SEH异常(/Eha)’, 之后,对话框就可以弹出了,nRet的结果是0!


    推荐阅读