RBA*_*RBA 3 delphi exception-handling exception delphi-7
我知道如何在delphi中捕获异常(try..except/finally和e.message)但我想知道是否存在异常处理机制,它可以引发异常以及引发异常的例程的名称.通过例子
procedure/function bla();//this can be in a unit/class
begin
code....
an error is raised here -> inside or not of an try-except/finally block
end;
Run Code Online (Sandbox Code Playgroud)
我将收到一条消息/对象/任何指示我'bla'中出现错误'x'的内容.
我知道关于madexcept,有另一种方法来捕捉异常吗?
我正在使用Delphi 7.解决方案也可能适用于其他Delphi版本.
您可以使用JCL库中属于ProcByLevel该JclDebug.pas单元的功能.
在使用之前,您必须'Insert JDBG data into the binary'从Ide Menu工具 - > jcl选项中激活该选项.

然后你可以这样使用它
Uses
JclDebug;
procedure TForm18.Button1Click(Sender: TObject);
begin
try
raise Exception.Create('Hello from '+ProcByLevel(0));
except
on e : Exception do
ShowMessage(e.Message);
end;
end;
Run Code Online (Sandbox Code Playgroud)
结果是这样的

另请参阅JCLDebug的JCLLastExceptStackListToStrings(),它为您提供了异常点的良好堆栈转储.
就像TheNewbie所说:你通过将TApplication.OnException设置为错误处理程序的地址来实现这一点.