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!
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
