Application.OnException是否在COM Dll中有效?

Ste*_*eve 1 delphi exception-handling

我想在Delphi编写的COM DLL中记录一些看似随机的错误.我该怎么做呢?是否可以使用Application.OnException事件处理程序?我控制COM DLL源,但不控制调用应用程序.

Mas*_*ler 5

没有.一个DLL没有Application变量,因为它不是一个应用程序.

处理DLL中异常的正确方法是使用try..except块.最基本的技术是try..except在每个导出函数周围放置一个块,这些函数会在错误传播到DLL外部之前捕获错误.

您可以尝试创建一个名为OnException的全局函数,让Except块调用它并传入它们收到的异常,或类似的东西.这基本上就是Application.OnException的作用; 它可以自动执行,因为它有一个靠近调用堆栈底部的单个已知点放入一个try..except块.