2

我的程序编译得很好,但是每次调用 throw(不在 try...catch 块内)时都会崩溃。

以下是用于项目中所有文件的命令之类的参数:

mingw32-g++.exe -fexceptions -DWIN32 -D_WINDOWS -D_MBCS -DNO_SOCKLEN_T -DDONTUSEMEMMANAGER -Wall -g -W -fexceptions -DDEBUG

(我知道 Wall 使 W 变得不必要,并且我有两次 -fexceptions 。)

编辑:我知道这种行为实际上没有任何问题。问题是,它曾经可以工作,也就是程序不会崩溃。但是几天前我对一些文件进行了更改,再次编译并突然崩溃了

4

2 回答 2

6

好吧,这是预期的行为。标准说[except.handle]:

如果没有找到匹配的处理程序,则调用函数 std::terminate();[...]

于 2012-06-16T13:41:46.207 回答
4

这称为未处理的异常。预期的行为是程序应该退出。

于 2012-06-16T13:40:08.563 回答