VCL でのデフォルト例外処理

提供: RAD Studio
移動先: 案内検索

VCL アプリケーションの例外処理 への移動


ユーザーのアプリケーション コードが、発生した例外を捕捉せず、処理しない場合は、その例外は、グローバル Application オブジェクトの HandleException メソッドにより最終的に捕捉され、処理されます。 EAbort 以外のすべての例外では、HandleExceptionOnException イベント ハンドラを呼び出します(存在する場合)。 OnException イベント ハンドラ(および例外が EAbort ではない)がない場合は、HandleException により、例外に関連付けられたエラー メッセージがメッセージ ボックスに表示されます。

一部の状況では、HandleException が呼び出されないことがあります。 アプリケーションの Run メソッドの実行の前または後に発生する例外は、HandleException により捕捉されず、処理されません。 外部アプリケーションから呼び出すことができる、関数のあるコールバック関数やライブラリ(.dll や共有オブジェクト)をコーディングするときは、例外は Application オブジェクトを回避できます。 この方式で例外が回避されないようにするには、次の HandleException メソッドの独自の呼び出しを挿入できます。

 try
 { special statements }
 except
   on Exception do
   begin
     Application.HandleException(Self);{ call HandleException }
   end;
 end;

警告: スレッドの例外処理コードから HandleException を呼び出さないでください。

関連項目