delphi try except语句 和 try finally语句用法以及区别

try//尝试执行

{SomeCode}

except//出错的时候执行, Except有特定的错误类型

{SomeCode}

end;

try//尝试执行

{SomeCode}

finally//无论如何都强制执行

{SomeCode}

end;

例:

try

Age:=StrToInt(Edit1.Text);

ShowMessage(Format('生于%d年',[YearOf(Now)-Age]));

except

on EConvertError do

showmessage('输入编辑框的不是一个有效的数字!');

on ERangeError do

showmessage('输入编辑框的年龄值太大!');

end;

保留字on…do用于判断异常类型。必须注意的是:except后面的语句必须包含在某一个on…do模块中,而不能单独存在。这又是同finally不同的一个地方。

异常处理

try

//成功失败都跳进finally语句里执行

finally

end;

try

//失败才跳进 except里执行

except on e:Exception do

ShowMessage(e.Message);

end;