如何拦截错误信息?(100分)

  • 主题发起人 主题发起人 tzhh
  • 开始时间 开始时间
T

tzhh

Unregistered / Unconfirmed
GUEST, unregistred user!
程序出错,用TRY。。。FINALLY。。。END无法避免讨厌的错误信息提示,
如何拦这些截错误信息?
 
//注意本程序编译后应脱离ide运行才不会显示Exception
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
AppEvnts, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin
//showmessage('error');//在这里什么都不做,就可以不显示错误信息了
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
raise Exception.Create('raise error');//自己产生一个例外
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnException:=ApplicationEvents1Exception;//截获exception
的缺省处理
end;

end.
 
TRY a FINALLY b END
是表示即使a部分出错或者不出错,b的代码一定会执行

try
B
except
D
end

可以不出现错误提示, 在 D 部分还可以提供出错处理,
try
...
except
end
也是可以的(不处理错误)
 
有两件事,你必须作:
1.用{$i-}来关闭错误信息
2.用try... except... end; 来截获错误信息.而不是try..finally..end;

欢迎到我的主页 http://sunstone.163.net 中的[编程心得]来交流学习
 
在delphi中运行,是会有错误提示出现的
但是直接运行exe就没有了(如果你try起了的话)
 
只想不显示错误对话合呀,简单,我灌一吧:
try
// your statement block1
except
//nothing here if you do not want to do something when the exception
//were raised
end;
 
你的问题应该是在delphi中运行才产生的。
 

try
......
except
......
end;
但是需要编译后,退出DELPHI执行才不会显示错误信息
 
〉〉退出DELPHI执行才不会显示错误信息

好像Delphi里可以选择让程序自己catch 错误,而不是IDE.
 
接受答案了.
 
后退
顶部