起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 667|回复: 0

怎样用自己的异常处理来代替系统的异常处理

[复制链接]
发表于 2007-11-9 14:37:46 | 显示全部楼层 |阅读模式
可以在整个系统使用自己的异常处理,也可以仅仅在某个功能窗体上使用自己的异常处理。
我们这里举例说明仅仅在某个窗体时如何捕获异常。
整个系统自己处理异常的代码类似,可以写在系统载入的主窗体上。
  TMainForm = class(TForm)
  private
    {private declarations}
    TempProc: TExceptionEvent ;  //用来记录原来的异常处理程序的地址
   
//我的异常处理程序
Procedure  MyExProc(Sender: Business.System.TObject; E: Business.System.Exception);

  end;

implementation


procedure TMainForm.BizFormCreate(Sender: TObject);
begin
  TempProc:=  Forms.Application.OnException ;  //记录下原来的异常处理程序
  Forms.Application.OnException:= MyExProc;   //将异常处理程序改为自己的。

end;

procedure TMainForm.MyExProc(Sender: Business.System.TObject; E: Business.System.Exception);
begin
  if e.Message='xxx' then
  begin
      //在这里处理你需要处理的异常。Xxx为你要截获的异常的信息。
      exit;
  end;
  
  Raise E;  //对于不需要截获的异常照常抛出。

end;


procedure TMainForm.BizFormClose(Sender: TObject; var Action: TCloseAction);
begin
  Forms.Application.OnException:= TempProc;  //恢复系统默认的异常处理程序
end;
end.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-11-1 10:37 , Processed in 0.041130 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表