Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi Application.OneException是否在COM Dll中工作?_Delphi_Exception Handling - Fatal编程技术网

Delphi Application.OneException是否在COM Dll中工作?

Delphi Application.OneException是否在COM Dll中工作?,delphi,exception-handling,Delphi,Exception Handling,我想在Delphi编写的COM DLL中记录一些看似随机的错误。我该怎么做?是否可以使用Application.OneException事件处理程序?我可以控制COM DLL源,但不能控制调用应用程序。否。DLL没有应用程序变量,因为它不是应用程序 处理DLL中异常的正确方法是使用try..except块。最基本的技术是在导出的每个函数周围放置一个try..except块,该块将在错误传播到DLL之外之前捕获错误 您可以尝试创建自己的名为OnException的全局函数,并让Except块调用它

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

否。DLL没有应用程序变量,因为它不是应用程序

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


您可以尝试创建自己的名为OnException的全局函数,并让Except块调用它并传入它们接收的异常,或者类似的事情。这就是Application.OnException的基本功能;它可以自动执行,因为它在调用堆栈底部附近有一个已知的点放在
try..块中。
块除外。

否。DLL没有应用程序变量,因为它不是应用程序

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


您可以尝试创建自己的名为OnException的全局函数,并让Except块调用它并传入它们接收的异常,或者类似的事情。这就是Application.OnException的基本功能;它可以自动执行,因为它在调用堆栈底部有一个已知的点,可以放入
try。你可能需要直接进入低层次的东西。查看系统单元中的RaiseExceptionProc。它应该可以让您获得所需的信息。

我认为Application.OnException在COM DLL中不适合您。你可能需要直接进入低层次的东西。查看系统单元中的RaiseExceptionProc。它应该能让你得到你想要的信息