異常響應為開發者提供了一個按自己的需要進行異常處理的機制
下面的例子表示了文件打開
uses Dialogs;
var
F: Textfile;
begin
OpenDialog
if OpenDialog
begin
AssignFile(F
try
Reset(F)
if MessageDlg(
mtConfirmation
begin
System
Erase(F)
end;
except
on EInOutError do
MessageDlg(
on EAccessDenied do
MessageDlg(
end;
end;
end
保留字on…do用於判斷異常類型
上面所使用的異常響應方法可總結為如下的形式
on ExceptionType do
{響應某一類的異常}
這種方法唯一使用的信息是異常的類型
為了使用異常實例
on EInstance : ExceptionType do …
在當前響應模塊中我們可以象使用一個普通對象那樣來引用它的數據成員
下面的代碼用於獲取異常消息並按自己的方式顯示它
{窗口中包括一個ScrollBar部件
procedure TErrorForm
begin
try
ScrollBar
except
on E: EInvalidOperation do
MessageDlg(
mtInformation
end;
end;
在異常響應模塊中
為了保證任何異常發生後都能在當前響應模塊中被清除
try
{程序正常功能}
except
on ESomething do
{響應特定異常}
else
{提供缺省響應}
end;
由於else可以響應任何異常
諸如
on ExceptionType do
的異常響應語句不僅可響應本類異常
on Exception do
這樣的語句將會對任何異常進行響應
下面一段代碼對整數越界異常進行單獨處理
try
{整數運算}
except
on ERangeError do
{越界處理}
on EIntError do
{其它整數異常處理}
end;
由於異常在處理後即被清除
由於異常在處理後即被清除
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/25188.html