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;