VCL でのデフォルト例外処理
VCL アプリケーションの例外処理 への移動
ユーザーのアプリケーション コードが、発生した例外を捕捉せず、処理しない場合は、その例外は、グローバル Application オブジェクトの HandleException メソッドにより最終的に捕捉され、処理されます。 EAbort 以外のすべての例外では、HandleException が OnException イベント ハンドラを呼び出します(存在する場合)。 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 を呼び出さないでください。