首页| 论坛| 消息

标题:在C++中,通过 try catch(...) 如何取得实际的错误对象
作者:jerrybaxia
日期:2020-12-23 09:46
内容:

try {
after();
} catch(std::exception &exception) {
QMessageBox::critical(this, tr("出现错误"), exception.what());
} catch(...) {
// TODO: 这里始何取得实际的错误类型
QMessageBox::critical(this, tr("出现错误"), tr("出现致使错误"));
}
因为编译器添加了
win* {
QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa
QMAKE_CXXFLAGS_STL_ON = /EHa
}
所以在 Windows项目中可以捕获到系统级错误
但我用了N种类型,都无法正解的获取到错误的对象,也就没有办法根据错误对像进行出错提示
只能在 ca ..


#1 [fsu0413 01-24 23:21]
没有实际类型,只能三个点
连微软官方文档中都不建议用/EHa。。。。。
#2 [fsu0413 01-24 23:25]
其实我觉得,如果程序不依赖/EHa提供的异常处理的话,完全没有必要使用/EHa。
就算不用/EHa,还是可以用MSVC提供的__try那一套来捕获一些基于SEH的异常。

回复 发表
主题 版块