我开始在我的程序中实现try / catch,但是当我测试它时,异常从未被捕获并且程序崩溃了。即使是最简单的try / catch用例也会失败,即
try
{
throw 123;
}
catch (...)
{
cerr << "This line doesn't get hit." << endl;
}
经过大量研究异常如何工作和调试之后,我终于发现问题是因为我正在与特定的-static-libstdc++
进行链接,这导致了中断。如果未设置此标志,则例外工作正常。经过进一步研究后,我找到了this bug report,但我无法弄清楚状态是什么。似乎问题仍然存在,但根据this earlier bug report,似乎可能会根据评论进行解决。不幸的是,我并不完全理解所有评论意味着什么,以及他们如何在手动构建GCC之外的时候让它发挥作用(如果可以的话,我想避免这样做)。
有没有办法解决这个错误,同时仍然链接静态标准库,我将如何解决它?