7 个解决方案
#1
use like this :
try
.....
except
end;
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,不要在调试状态下.一般的错误肯定不见了很恐怖.
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;
这样如果文件不存在也不会出错,只是打不开。
只是本人的看法。
还有就是用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;
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就没有了呢?
Delphi3.0中有的为什么到了5.0就没有了呢?
#7
大家说的都差不多,为了都给分,我又加了10分,这样我们大家都有欢喜。
#1
use like this :
try
.....
except
end;
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,不要在调试状态下.一般的错误肯定不见了很恐怖.
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;
这样如果文件不存在也不会出错,只是打不开。
只是本人的看法。
还有就是用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;
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就没有了呢?
Delphi3.0中有的为什么到了5.0就没有了呢?
#7
大家说的都差不多,为了都给分,我又加了10分,这样我们大家都有欢喜。