如何在Application.OnException事件处理程序中获取异常的来源?

时间:2014-08-11 15:05:02

标签: delphi delphi-7 onexception

在Delphi 7中,如果我在Application.OnException事件处理程序中捕获异常,那么我们如何才能找出应用程序的哪个函数或过程抛出了这个未处理的异常?

我已经创建了一个应用程序并正确获取异常,但是如何打印导致此异常的方法名称?

1 个答案:

答案 0 :(得分:1)

这不是一件容易做到的事情。您需要挂钩到低级异常处理例程以获得可靠的堆栈跟踪。这是一个非常高级的主题。它需要对运行时库进行逆向工程。在Stack Overflow问题中没有可以合理解释的东西。

现有许多第三方工具提供此类功能:madExcept,EurekaLog和JclDebug。我只有疯狂的经历,我热烈赞同。然而,从各方面来说,其他的问题也非常好。

如果你想学习如何做到这一点,那么看看开源的JclDebug。如果您不需要学习并希望将功能添加到您的程序中,请评估并选择其中一个工具。 JclDebug可能有点难以集成到您的程序中,所以如果您正在寻找快速简便的前进路线,其他两个中的一个可能会更有价值。