对于异常处理以及优化方面的疑惑

leftbackfielder leftbackfielder 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
try
{
int *p = NULL;
int a = *p;

int b = 100;
int c= b/0;

delete p;
//throw(1);

AfxMessageBox(L"do not catched");

}
catch(...)
{
AfxMessageBox(L"catched");
}

我用的是VS2005, 如果工程的编译选项都在默认的情况下.上面的代码,在DEBUG下,可以catch到异常.在Release下面,catch不到.
在网上查了一些资料,说是有一个/EHA的选项.加上这个选项之后,Release下面,依然无法catch到异常.
如果在release下,去掉优化选项,这样才可以catch到异常.
是编译器把异常处理优化掉了吗?
那加这些异常处理还有什么意义呢?一定要throw才,可以catch吗?
...全文
评论 11
收藏 已收藏
分享
返回顶部
leftbackfielder
VC/MFC 16,550 成员 421,606 内容