vs2008中,工程的默认设置,对于被0除,读取数组越界等问题是无法通过try捕捉再catch的,系统直接就给出了错误对话框然后程序崩溃
据资料称,上述异常均属于 结构化异常(Structured Exception,可以理解为与操作系统相关的异常)并不属于C++异常,所以默认设置并未让try进行截获,
这样做为了对错误进行分层处理??
为了捕获所有异常,可以在工程名右键,点击属性-〉C++ -> 代码生成 对话框里有“启用c++异常”项目,将默认的 “是(/EHsc)” 改为 “是,但是有SEH异常(/EHa)”就可以了
另如下写法可以捕获所有异常
try{
}
catch(...)
{
}
更多参考链接
http://blog.csdn.net/chinafe/article/details/16802625