如何在Exception块中获取过程名称

时间:2013-12-29 15:01:13

标签: delphi

我只能找到异常消息,如何获取程序名称?

procedure Division;
var
  i,j : Real;
begin
try
 i:=0;
 I:=10/i;
except on E: Exception do
  begin
    AppendtextFile (E.Message,'Exceptions.txt')
   end;
end;
end;

提前致谢

1 个答案:

答案 0 :(得分:2)

由Embarcadero提供的普通香草德尔福无法获取当前正在执行的程序名称。在任何情况下,这通常都不是很有用,因为您的异常处理程序可能在调用堆栈的某个方向上。

更有用的是导致异常的调用堆栈。你可以获得,但不能使用普通的香草德尔福。为了获得这样的信息,你需要堆栈跟踪代码(很难做好),以及可执行文件的详细地图。有许多工具可以提供这样的服务:madExcept,EurekaLog,JCL调试是最常用的。我个人可以推荐其中的第一个,尽管他们都做得很好。