4

我有一个丑陋的问题,不胜感激!每当抛出异常时,我的程序都会在 Windows 上崩溃,例如:

try
{
   throw QString("lala");
}
catch(QString &s)
{
  ...
}

我在 QtCreator 中使用带有 MinGW 的 Qt 4.8.1。我找到了很多讨论并尝试了

  • 使用 -exceptions 重建源代码
  • 添加 QMAKE_CXXFLAGS += -fexceptions

但没有变化。Windows 告诉我程序在我抛出错误时崩溃了。在 Linux 下一切正常。

根本不想讨论使用异常的利弊,我想知道这是否是 Qt 或 MinGW 的问题,以及我能做些什么来摆脱这个问题。

4

1 回答 1

0

您没有具体说明“崩溃”的确切含义,但如果您收到类似“应用程序已要求运行时以不寻常的方式退出”之类的消息,则意味着您的异常被完全抛出程序之外,没有被任何东西抓住。因为我相信特定的消息是由 MSVC 运行时产生的,所以 mingw 运行时可能有不同的、具有相同含义的消息,或者根本没有消息。

于 2013-04-22T20:40:24.410 回答