0

私は新しいプログラマで、Delphi のApplication.OnExceptionイベントがどのように機能するかを理解しようとしています。同僚が、独自のメソッドを作成してインスタンス化し、ユニットApplication.OnExceptioninitializationセクションで に渡すことで、デフォルトの例外処理を変更しました。このユニットはuses、別のユニットの句で宣言されており、それ以外では使用されていません。

unit ADLDebug;
...

class procedure TADLExceptionHandler.ADLHandleException (Sender: TObject; E: Exception);
...

initialization
   Handler := TADLExceptionHandler.Create;
   Application.OnException := Handler.ADLHandleException;

initializationデバッガーを使用してセクションにステップインすることしかできず、ADLHandleExceptionメソッドにはステップインできません。HandleException再定義されたメソッドによってキャッチされるコードで例外を発生させようとしています。

再定義されたメソッドのスコープは、HandleExceptionを含むユニットのみにする必要がありますADLDebugか? アプリケーションワイドにすべきだと思っていたのですが、なかなか呼べないようです。

4

1 に答える 1

4

Application.OnException のスコープは、実際にはアプリケーション全体です。このイベントは、処理されない例外が発生するたびに発生します。

メッセージループが開始する前に、起動時に例外を発生させているため、イベントの発生を確認できません。

于 2013-08-12T19:48:43.567 に答える