我的应用程序在初始化过程中崩溃,我遇到了一个测试人员的问题。我增加了更多的日志记录和异常处理,但它仍然会因为通用的“此程序已停止工作”消息而崩溃,而不是触发我的错误处理。
考虑到我的main()看起来像这样,并且在何种情况下会没有触发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渲染的库,我认为这就是出错的地方。
handleApplicationError
没有被调用(它会弹出一个消息框并关闭我的启动屏幕,但这两个都没有发生)。 - Mr. Boycatch(...)
应该让我重新掌控,如果出现任何问题,或者说我想知道在什么情况下这不是真的。 - Mr. Boy