如何将Delphi开发的程序的所有异常都写到log文件中,同时还保留异常处理 ( 积分: 200 )

  • 主题发起人 主题发起人 yandong_mars
  • 开始时间 开始时间
Y

yandong_mars

Unregistered / Unconfirmed
GUEST, unregistred user!
例如
try
i := 0;
i := 0/i;
except
end;
如果不写try except end;程序将出现异常显示,我想屏蔽掉这些异常显示,同时是发生的异常还能通过日志查询到。
 
例如
try
i := 0;
i := 0/i;
except
end;
如果不写try except end;程序将出现异常显示,我想屏蔽掉这些异常显示,同时是发生的异常还能通过日志查询到。
 
try
i := 0;
i := 0/i;
except
On E:Exception Do
Begin
...
MyLog(E.Message); //MyLog为自定义写日志函数
End;
end;
 
你可以使用Application.OnException
所有未截获的异常都会触发这个事件, 在这里写日志就行了.
你可以参考DELPHI的源代码:
procedure TApplication.HandleException(Sender: TObject);
begin
if GetCapture <> 0 then SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
if ExceptObject is Exception then
begin
if not (ExceptObject is EAbort) then
if Assigned(FOnException) then
FOnException(Sender, Exception(ExceptObject))
else
ShowException(Exception(ExceptObject));
end else
SysUtils.ShowException(ExceptObject, ExceptAddr);
end;
 
哎 原来如此简单 哈
以前一直没好好研究过异常这个类
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部