处理Application.OnException时,如何获取具体类的名称呢
处理Application.OnException时,怎么获取具体类的名称呢?
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException :=MyException;
end;
procedure TForm1.MyException(Sender:TObject;E:Exception);
begin
ShowMessage(E.ClassParent.....); // 这边怎样获取具体哪个类哪个方法的异常呢?
end;
------解决方案--------------------
一般状况下,发布出去的程序是不带调试信息(Debug Information),所以无法取得详细信息(Call stack,单元名称,方法以及行数)。
若要临时跟踪使用,可以编译一个带调试信息的exe,放上一个JVDebugHandle,设定好路径后,异常信息则可以输出到txt文件中,该控件提供了足够的信息让你了解问题所在。
可能你想自己定义异常,在异常捕捉处,自己填充需要的信息。但此法,总会有漏网之鱼...
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException :=MyException;
end;
procedure TForm1.MyException(Sender:TObject;E:Exception);
begin
ShowMessage(E.ClassParent.....); // 这边怎样获取具体哪个类哪个方法的异常呢?
end;
------解决方案--------------------
一般状况下,发布出去的程序是不带调试信息(Debug Information),所以无法取得详细信息(Call stack,单元名称,方法以及行数)。
若要临时跟踪使用,可以编译一个带调试信息的exe,放上一个JVDebugHandle,设定好路径后,异常信息则可以输出到txt文件中,该控件提供了足够的信息让你了解问题所在。
可能你想自己定义异常,在异常捕捉处,自己填充需要的信息。但此法,总会有漏网之鱼...