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

时间:2009-12-02 12:07:03

标签: c++ visual-studio visual-studio-2008

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

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

对于给您带来的不便,我们深表歉意。如果您处于中间状态,您正在处理的信息可能会丢失。有关此错误的更多信息,请单击此处。

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:4)

阅读一系列文章Exception Handling and Crash Reporting。可以捕获异常并按照您的意愿处理它(例如,您可以保存故障转储)。