procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException :=MyException;
end;
procedure TForm1.MyException(Sender:TObject;E:Exception);
begin
ShowMessage(E.ClassParent.....);   //  这边怎样获取具体哪个类哪个方法的异常呢?
 end;

解决方案 »

  1.   

    或者怎样根据Sender  获取方法名称呢?
    procedure TMyErrorClass.MyExceptionHandler(Sender: TObject; EInstance: Exception);
      

  2.   

    一般状况下,发布出去的程序是不带调试信息(Debug Information),所以无法取得详细信息(Call stack,单元名称,方法以及行数)。若要临时跟踪使用,可以编译一个带调试信息的exe,放上一个JVDebugHandle,设定好路径后,异常信息则可以输出到txt文件中,该控件提供了足够的信息让你了解问题所在。可能你想自己定义异常,在异常捕捉处,自己填充需要的信息。但此法,总会有漏网之鱼...