当我的MSVS C++应用程序崩溃时,如何避免弹出错误对话框

Jos*_*Fox 3 c++ visual-studio-2008 visual-studio

当我的Visual Studio 2008 C++命令行应用程序崩溃时,它有时会生成此对话框.

CommandProcessor.exe遇到问题,需要关闭.

我们对造成的不便很抱歉.如果您处于中间状态,您正在处理的信息可能会丢失.有关此错误的更多信息,请单击此处.

我在Release和Debug模式下尝试了这个.

(顺便说一句,调试器显示这是一个除零错误.)

如果它将崩溃,我不希望这个阻止应用程序的对话框.如何编译我的应用程序,以便崩溃不会产生对话框?

sha*_*oth 6

使用/ EHa选项,您可以使用catch(...)来捕获包含结构化异常的所有异常并编写控制台消息.您也可以使用VC++特定的__try来进行结构化异常处理,但这有点难以编码.

但是,这不会保护您免受C++运行时调用terminate()的情况 - 例如在堆栈展开期间异常转义析构函数时 - 您还必须通过调用set_terminate()来更改terminate()处理程序.