try与catch的小问题(15分)

  • 主题发起人 主题发起人 程序小鱼
  • 开始时间 开始时间

程序小鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
try
image1.Picture.Bitmap.LoadFromFile();
catch(?????)
.........
__finally
.....
end;
其中的catch(??)??写什么呢,我想是如果图片不存在,或出现其它错误时捕捉它们,可是不知道写什么好。我对TRY不了解,所以请多讲几句吧。谢谢了.我更希望能告诉我是怎么找到的这个异常的,我查HELP查不到,有什么好方法吗。
 
让程序触发这个错误 delphi会显示一段错误提示代码 仔细观察 你会发现其中有一个就是
异常类的类名
系统默认会提供这个功能的 当然你也可以屏蔽到

找到异常类的类型之后 就可以在你的catch中填写了
 
你可以具体写出是怎么找到异常的吗。比如我想找一个读图片,没有找到文件的异常。
我想知道是怎么找的。方法!我想学方法。
 
首先你要触发这个错误(也就是让delphi报错)。delphi会给你一个友好的错误消息,
比如
procedure TForm1.Button1Click(Sender: TObject);
begin
self.Image1.Picture.LoadFromFile('1');
end;

当然 你是随便指定一个文件,程序读不到一定会出错
他会跑出个信息

|-----------------------------------------------------------------------
|progect progect1.exe raised exception class EInvalidGraphic with.......
|
------------------------------------------------------------------

仔细观察 其中EInvalidGraphic 就是异常的类型
因为异常也是类,并且类名以E开头 所以你只要找到了E开头的单词 。。。

然后填写
try
image1.Picture.Bitmap.LoadFromFile();
except
on E: EInvalidGraphic //判断异常类型
do
ErrorDialog(E.Message, E.HelpContext)
//异常处理
END;

这就可以了
[:)]
 
后退
顶部