如何让异常驻警告提示不出现?

时间:2022-01-19 00:44:59
  在编程中总会出现一些异常,如何避免这个窗口的弹出,用的是哪个控制码?

7 个解决方案

#1


use like this :
try
  .....
except
end;  

#2


在主窗体类的 private 属性内定义这个过程
procedure Onexception(Sender: TObject; E: Exception);
procedure TMainFrm.Onexception(Sender: TObject; E: Exception);
begin
  //...做你想做的
  Abort;
end;

在主窗体的OnCreate 事件加入这句话.
Application.OnException := Onexception;
好了,执行 exe,不要在调试状态下.一般的错误肯定不见了很恐怖.

#3


我想你应该把容易产生错误的代码仔细的看一下,看看是不是可以必免错误的产生,
还有就是用Try与expect来保护可能出现异常的代码,
比如打开文件,
try
  richedit1.lines.LoadFromFile('d:\html.txt');
expect
end;
这样如果文件不存在也不会出错,只是打不开。
只是本人的看法。

#4


 有几种方法,一种是自己在程序中进行异常控制,使用
try 
 ... //程序代码
exception 
 ... //如果不写任何代码,就不会出现讨厌的错误窗口。你也可以添加自己的代码如显示中文的错误消息,替换系统提供的英文错误提示。
finally 
 ... //进行额外的处理,例如资源的释放等等。
end;
另一种是用seterrormode()设置系统的错误处理模式。具体的自己看帮助。
还有一种就是在编译是进行控制,例如在读写磁盘前用{I-}编译指令,读写完成之后在打开{I+},这样即使出现错误,也不会有任何的反应!例如:
procedure TForm1.Button1Click(Sender: TObject);

function FileExists(FileName: string): Boolean;

{ Boolean function that returns True if the file exists; otherwise,
  it returns False. Closes the file if it exists. }
 var
  F: file;
begin
  {$I-}
  AssignFile(F, FileName);
  FileMode := 0;  {Set file access to read only }
  Reset(F);
  CloseFile(F);
  {$I+}
  FileExists := (IOResult = 0) and (FileName <> '');
end;  { FileExists }

begin

  if FileExists('a:\aa.txt') then {Get file name from command line}
    Canvas.TextOut(10, 10, 'File exists')
  else
    Canvas.TextOut(10, 10, 'File not found');
end;

#5


用异常!
估计你不是因为这些问题引起的,是不是你没有单独执行,而是在设计阶段快捷运行,那样,即使写了异常一样会出现乱七八糟的提示!什么都不用,单独运行一点问题也没有了(如果你写了异常)。

#6


记得曾有一本关于DELPHI3。0的书中介绍说:在调试异常处理代码时,可以关闭Break On Exception特性,即在菜单:Tools->Options->,出现Environment Options对话框,在preferences页面上有Break On Exception标记。

Delphi3.0中有的为什么到了5.0就没有了呢?

#7


大家说的都差不多,为了都给分,我又加了10分,这样我们大家都有欢喜。

#1


use like this :
try
  .....
except
end;  

#2


在主窗体类的 private 属性内定义这个过程
procedure Onexception(Sender: TObject; E: Exception);
procedure TMainFrm.Onexception(Sender: TObject; E: Exception);
begin
  //...做你想做的
  Abort;
end;

在主窗体的OnCreate 事件加入这句话.
Application.OnException := Onexception;
好了,执行 exe,不要在调试状态下.一般的错误肯定不见了很恐怖.

#3


我想你应该把容易产生错误的代码仔细的看一下,看看是不是可以必免错误的产生,
还有就是用Try与expect来保护可能出现异常的代码,
比如打开文件,
try
  richedit1.lines.LoadFromFile('d:\html.txt');
expect
end;
这样如果文件不存在也不会出错,只是打不开。
只是本人的看法。

#4


 有几种方法,一种是自己在程序中进行异常控制,使用
try 
 ... //程序代码
exception 
 ... //如果不写任何代码,就不会出现讨厌的错误窗口。你也可以添加自己的代码如显示中文的错误消息,替换系统提供的英文错误提示。
finally 
 ... //进行额外的处理,例如资源的释放等等。
end;
另一种是用seterrormode()设置系统的错误处理模式。具体的自己看帮助。
还有一种就是在编译是进行控制,例如在读写磁盘前用{I-}编译指令,读写完成之后在打开{I+},这样即使出现错误,也不会有任何的反应!例如:
procedure TForm1.Button1Click(Sender: TObject);

function FileExists(FileName: string): Boolean;

{ Boolean function that returns True if the file exists; otherwise,
  it returns False. Closes the file if it exists. }
 var
  F: file;
begin
  {$I-}
  AssignFile(F, FileName);
  FileMode := 0;  {Set file access to read only }
  Reset(F);
  CloseFile(F);
  {$I+}
  FileExists := (IOResult = 0) and (FileName <> '');
end;  { FileExists }

begin

  if FileExists('a:\aa.txt') then {Get file name from command line}
    Canvas.TextOut(10, 10, 'File exists')
  else
    Canvas.TextOut(10, 10, 'File not found');
end;

#5


用异常!
估计你不是因为这些问题引起的,是不是你没有单独执行,而是在设计阶段快捷运行,那样,即使写了异常一样会出现乱七八糟的提示!什么都不用,单独运行一点问题也没有了(如果你写了异常)。

#6


记得曾有一本关于DELPHI3。0的书中介绍说:在调试异常处理代码时,可以关闭Break On Exception特性,即在菜单:Tools->Options->,出现Environment Options对话框,在preferences页面上有Break On Exception标记。

Delphi3.0中有的为什么到了5.0就没有了呢?

#7


大家说的都差不多,为了都给分,我又加了10分,这样我们大家都有欢喜。