我遇到了一个测试程序的问题,我的应用程序在初始化时崩溃。我添加了更多的日志记录和异常处理,但它仍然与通用的“此程序已停止工作”消息崩溃,而不是触发我的错误处理。catch(...)没有捕捉到异常,我的程序仍然崩溃
鉴于我的主要()看起来像这样,并有catch(...)
在什么情况下,这不会被触发?
try{
simed::CArmApp app(0, cmd);
for(bool done = false;!done;)
{
done = !app.frame();
}
} catch(const std::runtime_error &e){
handleApplicationError(e.what());
return -1;
} catch(...) {
handleApplicationError("Unknown Error");
return -999;
}
我的代码调用了一个库,在做OpenGL渲染,这是我认为事情出错的地方。
我不确定我是否理解。你怎么知道这是一个未捕获的异常? – kec
因为'handleApplicationError'没有被调用(它引发了一个MessageBox并杀死了我的启动画面,这些都没有发生) –
但是为什么它不能仅仅是一些其他类型的程序崩溃? – kec