DELPHI如何跳过错误?(50分)

  • 主题发起人 主题发起人 八神庵
  • 开始时间 开始时间

八神庵

Unregistered / Unconfirmed
GUEST, unregistred user!
比如我用memo读取一个文件,但那个文件不存在,我又不想它出现"提示系统找不到此文件"
用什么方法搞掉呢?比如找不到文件则exit;
 
try
找不到文件....
except
;
end;
 
try
except
Exit;
end;
 
同意楼上
 
try
Memo1.Lines.LoadFromFile('e:/eeee.txt');
except
Exit;
end;
这样?
 
会的帮帮忙,急着呢[:)][:)]
 
就是你说的那样啊,再不自己检测一下,不存在就不理会了:
if Not(FileExists('e:/eeee.txt')) then Exit; //文件不存在,就不用Load了
Memo1.Lines.LoadFromFile('e:/eeee.txt');
 
if fileexists('e:/eeee.txt') then
Memo1.Lines.LoadFromFile('e:/eeee.txt')
else
exit;
 
tmpStr := 'c:/aa.txt';
if fileexists('tmpStr') then
Memo1.Lines.LoadFromFile(tmpStr)
else
ShowMessage('no such file');
 
谢谢各位了!
 
最好的处理方式建议楼主:

if FileExists(AFileName) then
Memo1.Lines.LoadFromFile(AFileName)
else
DoOthers;//..

使用try except end;
直接吃掉异常的方式,一般不建议使用,只有在不知道为什么的情况下才使用。
 
假如用try except end;应该如何写呢?
 
其实try好些,直接就:
try
Memo1.Lines.LoadFromFile('e:/eeee.txt');
except
//如果不想提示,留空就好了

end;

比 FileExists() 好的原因在于——只要文件读取失败,都能捕捉到!
当文件被锁定,或者以独占方式打开时,if FileExists() then 方法还是会提示错误的。
 
大不了你两种一起用:
try
if FileExists('e:/eeee.txt') then
Memo1.Lines.LoadFromFile('e:/eeee.txt');
except
//文件存在但读取失败

end;
 
后退
顶部