在Windows中,“应用程序中发生异常未知软件异常(0x40000015)”是指STATUS_FATAL_APP_EXIT?

时间:2011-02-25 09:32:59

标签: windows exception exception-handling

关机时(由UPS发起)我的应用程序崩溃并显示一个消息框。

消息框中的文本是“应用程序中出现异常未知软件异常(0x40000015)”。

我浏览了ntstatus.h并找到了STATUS_FATAL_APP_EXIT?如果它是正确的,为什么消息框会说“未知的软件异常”?

1 个答案:

答案 0 :(得分:14)

是,0x40000015表示STATUS_FATAL_APP_EXIT。您的应用程序在关闭期间导致未处理的运行时异常。如果您自己不处理某些运行时异常,则会实际处理这些异常,并且其中一些默认处理程序会调用abort()。默认情况下,abort会调用:

_call_reportfault(_CRT_DEBUGGER_ABORT, STATUS_FATAL_APP_EXIT, EXCEPTION_NONCONTINUABLE);

abort是一个通用的终止 - 它不知道哪个特定的异常提示它被调用,因此通用的“未知软件异常”消息。

中止的一条路径是通过_purecall异常 - 调用未实现的纯虚拟调用。

从Visual Studio \ VC \ crt \ src目录中的purevirt.c和abort.c收集。


MSDN有documentation on overriding the default pure call exception handler

以下是一些相关问题: