如果未捕获异常会发生什么?

时间:2010-04-13 21:05:51

标签: c++ exception

我不会问一个意外的异常,而是一个未捕获的异常。

坠毁?还是终止了?

2 个答案:

答案 0 :(得分:7)

根据§15.3/ 9:

  

如果在程序中找不到匹配的处理程序,则调用函数terminate();在调用terminate()之前是否展开堆栈是实现定义的(15.5.1)。 强调我的

之后会发生什么事情取决于您的操作系统。在实践中:崩溃。 (或者,如果你在调试器中,“嘿,你没有抓住这个。”)

答案 1 :(得分:0)

通常,terminate将调用abort()退出进程,可能会转储核心,或者如果连接了调试器,则在调试器中停止,以便您可以看到发生了什么。如果您没有在某处捕获异常,则程序无法继续。