我遇到了一個測試程序的問題,我的應用程序在初始化時崩潰。我添加了更多的日誌記錄和異常處理,但它仍然與通用的「此程序已停止工作」消息崩潰,而不是觸發我的錯誤處理。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