我有使用 3rd 方库的代码。
该库偶尔会引发访问冲突异常。一个基本的 try/catch 没有捕捉到错误,程序会硬崩溃。
我可以使用 __try __except 来捕获错误,记录它,然后优雅地退出程序。
第 3 方刚刚更新了他们的库,现在导致访问冲突错误的一小部分记录在生产中以“[程序名称]已停止工作”而死
在 Visual Studio 中,当单步执行时,我得到“Microsoft Visual Studio C 运行时库在 [程序名称] 中检测到致命错误”。
我已经更新了我的 __except 语句以捕获所有内容(或者我相信),它仍然会发生。
原__除了:
__except (eps = GetExceptionInformation(), ((GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION)
? EXCEPTION_EXECUTE_HANDLER
: EXCEPTION_CONTINUE_SEARCH)) {
sprintf("error message");
result = 99;
}
新__除了:
__except (eps = GetExceptionInformation(), ((1 == 1)
? EXCEPTION_EXECUTE_HANDLER
: EXCEPTION_CONTINUE_SEARCH)) {
sprintf("error message");
result = 99;
}