默认情况下,使用try/catch只能捕获到程序中通过throw抛出的异常,也就是说只能捕获到C++异常。但是除此之外还有Win32异常、CRT异常、CLR异常以及MDA异常等等。为了能够在VC中通过catch(...)捕获所有异常,需要修改工程配置,在配置属性->C/C++->代码生成->启动C++异常,选择是,但有SEH异常即可捕获到所有异常。
这样一来是可以补货所有异常了,但是出现异常时就会直接定位到catch中,不利于错误的排查。可以在调试->异常里面将C++ Exceptions、Native Run-Time Checks以及Win32 Exceptions的引发勾选项选上。引发表示异常的第一处理,然后到catch处理,最后是用户未处理的。
VC的异常处理
最新推荐文章于 2016-05-25 14:00:00 发布