代码之家  ›  专栏  ›  技术社区  ›  Joshua Fox

如何避免在MSV C++应用程序崩溃时弹出错误对话框

  •  3
  • Joshua Fox  · 技术社区  · 15 年前

    当我的VisualStudio 2008 C++命令行应用崩溃时,它有时会产生这个对话框。

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

    给您带来不便,我们深表歉意。如果你正在做某件事,你正在处理的信息可能会丢失。有关此错误的详细信息,请单击此处。

    我在发行版和调试模式中尝试过这个方法。

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

    如果它要崩溃,我不需要这个对话框,它会阻塞应用程序。如何编译应用程序,使崩溃不会产生对话框?

    2 回复  |  直到 15 年前
        1
  •  6
  •   sharptooth    15 年前

    使用/eha选项,可以使用catch(…)捕获包括结构化异常在内的所有异常,并编写控制台消息。您也可以使用vc++-特定的uuu来尝试结构化异常处理,但这有点难编码。

    但是,这不会保护您避免在C++RunTime:Enter()被调用时的情况下,当异常在堆栈展开时逃出一个析构函数时,您还必须通过调用SETIONTENTATE()来更改TealEnter()处理程序。

        2
  •  4
  •   Kirill V. Lyadvinsky    15 年前

    阅读一系列文章 Exception Handling and Crash Reporting .可以捕获异常并根据需要进行处理(例如,可以保存崩溃转储)。