gpt4 book ai didi

delphi - 如何使用 EurekaLog 将调用堆栈信息传递给异常?

转载 作者:行者123 更新时间:2023-12-03 15:52:24 28 4
gpt4 key购买 nike

我有一个线程应用程序,出于某种目的,我想将捕获的异常的调用堆栈信息传递给新的自定义异常:

try
//here an unknown exception is rissen
except
on E: Exception do
begin
if ... then
raise EMyException.Create(E, CallStackOfExceptionEAsString);
end;
end;

最好的方法是什么,最好使用 EurekaLog?顺便说一句,我正在使用 Delphi 2006。

最佳答案

EurekaLog 公开了几个事件处理程序,例如 OnExceptionNotify .

您可以在代码中实现这些。例如:procedure EurekaLogExceptionNotify(
EurekaExceptionRecord: TEurekaExceptionRecord; var Handled: Boolean);

在这里您可以看到TEurekaExceptionRecord定义于 ExceptionLog.pas 。但您可能只拥有运行良好的非源版本。

该记录有 EurekaExceptionRecord.CallStack列表。该专有列表可以转换为TStrings使用CallStackToStrings方法也在 ExceptionLog 中定义单位。

下面是我将 CallStack 写入 StringList 的示例。

CallStackList := TStringList.Create;
try
CallStackToStrings(EurekaExceptionRecord.CallStack, CallStackList);

LogMessage := 'An unhandled exception occured. Here is the CallStack.' + #13#10
+ CallStackList.Text;
finally
CallStackList.Free;
end;

至少从这个起点开始,您应该能够调查公开的函数、记录等。所有信息都是可访问的。

关于delphi - 如何使用 EurekaLog 将调用堆栈信息传递给异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484107/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com