是否有某种方法可以捕获未处理的异常(包括那些在 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);
}