是否有某种方法可以捕获未处理的异常(包括那些在 catch 块之外抛出的异常)?
我并不真正关心使用异常完成的所有正常清理工作,只是我可以捕获它,将其写入日志/通知用户并退出程序,因为这些情况下的异常通常是致命的、不可恢复的错误。
就像是:
global_catch()
{
MessageBox(NULL,L"Fatal Error", L"A fatal error has occured. Sorry for any inconvience", MB_ICONERROR);
exit(-1);
}
global_catch(Exception *except)
{
MessageBox(NULL,L"Fatal Error", except->ToString(), MB_ICONERROR);
exit(-1);
}
原文由 Fire Lancer 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可用于捕获意外异常。
如果没有 try catch 块,我认为您无法捕获异常,因此请构建您的程序,以便异常代码在 try/catch 的控制下。