如何判断我是否在Delphi异常堆栈中?

Zar*_*tog 8 delphi exception-handling exception

从finally块中,是否有可能告诉异常已被提出?

Uwe*_*ter 18

您可以检查是否已分配ExceptObject或ExceptAddr.在VCL来源中,这是为了考试.在GIFImg.pas或jpeg.pas中.

应输出以下代码

ExceptObject <> nil
ExceptObject = nil

如果你当然删除了例外

ExceptObject = nil
ExceptObject = nil

  try
    try
      raise Exception.Create('Just an exception');
    finally
      if ExceptObject <> nil then
        WriteLn('ExceptObject <> nil')
      else
        WriteLn('ExceptObject = nil');
    end;
  except

  end;
  if ExceptObject <> nil then
    WriteLn('ExceptObject <> nil')
  else
    WriteLn('ExceptObject = nil');
Run Code Online (Sandbox Code Playgroud)

  • 嘿,很高兴见到你! (4认同)