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 回答