1. ホーム
  2. windows

[解決済み] Windowsで、「アプリケーションで例外の未知のソフトウェア例外(0x40000015)が発生しました」は、STATUS_FATAL_APP_EXITのことでしょうか。

2022-03-04 18:55:11

質問

UPSによるシャットダウン時に、アプリケーションがクラッシュし、メッセージボックスが表示されます。

メッセージボックスのテキストは "アプリケーションで未知のソフトウェア例外 (0x40000015) が発生しました"です。

を閲覧しました。 ntstatus.h を見つけ STATUS_FATAL_APP_EXIT ? もしそうなら、なぜメッセージボックスに "unknown software exception" と表示されるのでしょうか?

解決方法は?

はい、0x40000015 は STATUS_FATAL_APP_EXIT を意味します。 アプリがシャットダウン中に未処理の実行時例外を発生させました。 いくつかのランタイム例外は、自分で処理しない場合は実際に処理され、これらのデフォルトハンドラのいくつかは abort() . デフォルトでは abort を呼び出します。

_call_reportfault(_CRT_DEBUGGER_ABORT, STATUS_FATAL_APP_EXIT, EXCEPTION_NONCONTINUABLE);

abort は一般的な終了処理です。どのような特定の例外によって呼び出されたのか分からないため、一般的な「不明なソフトウェア例外」メッセージが表示されます。

中止するための1つの方法は、_purecall例外を経由して、未実装の純粋な仮想コールを呼び出すことです。

Gleaned from purevirt.c and abort.c in Visual Studio
MSDNでは デフォルトの純粋な呼び出し例外ハンドラをオーバーライドするためのドキュメントです。 .

以下は関連する質問です。