Delphi XE8应用程序处理和第三方异常处理工具

时间:2016-03-11 09:11:24

标签: delphi delphi-xe8 madexcept eurekalog

我已经在delphi中维护了一个我没有线索的项目:)。它从D5转换为XE8。所以它有很多自定义的东西(我用Dictionaries替换了一些自定义的Object列表,因为D5中不存在Dictionaries)。主要应用是扩展TForm,而在FormCreate方法中包含这一行

Application.OnException := FormException;
HandleException := Application.HandleException;

FormException方法接受异常,并打印一个包含一些信息和调用堆栈的详细窗口。

我想在我的项目中集成EurekaLog或madExcept,以便能够找到有关未处理异常的更多信息。但是虽然安装和启用我没有得到我想要的信息的窗口。它运行FromException方法,虽然我读到与madExcept链接时会被忽略。创建一个新项目只需通过madExcept或EurekaLog激活的按钮单击抛出异常就可以正常工作。我不知道在哪里寻找delphi的异常处理,以及我是否需要为第三方工具提供更多设置。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我使用的是EurekaLog,并且有几种情况它没有捕获异常。

例如,如果您的应用程序是多线程的并且它正在关闭,则线程正在关闭,并且EL可能没有时间捕获异常。

您可能还配置了EL以忽略特定异常。检查EL设置窗口中的选项。

确保根据您拥有的应用类型(VCL / FMX /等)配置EL。这是EL选项窗口中的第一个选项。

确保调试器生成详细的地图文件(项目>选项>编译器>链接>地图文件 - >详细信息)

我能想到的最后一件事是没有正确安装EL。转到项目>查看来源。如果EL为您的项目激活,您应该能够在System.StartUpCopy之前看到许多单位(EMemLeak等)。

顺便说一句,你有哪个版本的EL?

Elpizo na boithisa ......

答案 1 :(得分:0)

EurekaLog看到您已经安装了Application.OnException事件处理程序,并假定您想自己处理未处理的异常。 madExcept可能也是如此。

如果要使用EurekaLog处理未处理的异常,则可以:

有关更多详细信息,请参见this