Delphi中如何在Units的初始化部分捕获异常

Rez*_*eza 5 delphi exception-handling delphi-xe5 delphi-xe6

我有一个第三方单元,女巫在单元的初始化部分引发异常。如何在我的应用程序中捕获此异常?

Dav*_*nan 3

你无法抓住这样的东西。RTL 执行初始化部分,规则是不会引发异常。如果出现异常,则故障已结束。

另一种方法是,当初始化部分开始执行时,语言异常处理框架尚未到位。它本身是作为 RTL 初始化的一部分安装的。

解决方案是修复代码,使其遵守规则。初始化部分没有引发异常。


好吧,我想您可以挂接执行初始化的 RTL 代码,并可能用异常弹性代码替换该 RTL 代码。但这有什么意义呢?如果初始化部分引发异常,则唯一合理的假设是该单元未初始化,因此不适合使用。请不要试图把头埋在沙子里而忽视真正的问题。修复第三方代码。