首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 異常家族回應機制與自訂異常類別應用基礎

     編輯:Delphi

異常家族回應:on ExceptionType do 的繼承特性

on ExceptionType do 不僅回應該類別異常,也回應其子類別異常。系統不直接引發 EIntError、EMathError 等基類別,故它們僅回應子類別。on Exception do 則回應所有異常。

回應順序關鍵:子類別優先於父類別

try
  { 整數運算 }
except
  on ERangeError do
    { 越界單獨處理 }
  on EIntError do
    { 其他整數異常統一處理 }
end;

異常處理後自動清除,上述順序確保 ERangeError 不被重複處理。若順序顛倒,ERangeError 永無執行機會(被父類別 EIntError 攔截)。

多重處理需重新引發:raise 保留字

異常處理後即清除,若需多重處理(如同時設定變數值與釋放資源),需用 raise 重新引發當前異常:

var
  APointer: Pointer;
  AInt, ADiv: Integer;
begin
  ADiv := 0;
  GetMem(APointer, 1024);
  try
    try
      AInt := 10 div ADiv;
    except
      on EDivByZero do
      begin
        AInt := 0;
        raise;  { 重新引發,交由外層 finally 釋放記憶體 }
      end;
    end;
  finally
    FreeMem(APointer, 1024);
  end;
end;

展示異常保護(finally)與異常回應(except)巢狀結合,raise 讓外層 finally 得以執行資源釋放。

自訂異常類別應用基礎

標準異常針對系統正常運行異常,自訂異常處理應用程式預設狀態異常:非法密碼、數據超出設定範圍、計算結果偏離預期等。使用步驟:

  1. 定義異常物件類別(繼承 Exception 或標準異常);
  2. 自行引發異常(raise 類別實例)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved