如果我写
try {
throw std::exception("Exception");
} catch (std::exception& ex) {
qDebug("Game Over");
}
在我的主要功能(或其他任何地方)内,我的Qt应用程序崩溃了。 这种效应已在Exception handling doesn't work with Qt on Windows中描述(5年前)。
原版海报显然是通过自己重新配置和重建Qt SDK解决了这个问题(明确启用-exceptions
),但我很难相信所有Qt二进制文件都附带异常关闭并且每个人都使用异常必须这样做。
有人能指出我记录的地方,告诉我这是真的还是我在这里做错了什么?
我现在在Qt 5.4.2上使用MSVC2013,Win 7(从here下载qt-opensource-windows-x86-msvc2013_opengl-5.4.2.exe)。
答案 0 :(得分:3)
你没有做错任何事。由于Qt不使用异常,因此在默认的Qt构建中启用它们是不必要的开销。因此,在允许禁用异常的平台上,它们确实会被禁用。
一般来说,你真的需要自己编译Qt。预构建的二进制文件适合于探索和学生使用,但如果您认真考虑在产品中使用它,或者需要非默认配置,则必须使用所需的标记自行编译。