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

Delphi 異常處理機制核心:Exception 類別架構與執行階段庫異常(I/O、堆疊)完整體系

     編輯:Delphi

異常處理機制基礎:保護區塊與 Exception 類別

Delphi 異常處理建立在保護區塊概念上:try 與 end 封裝程式碼區塊。錯誤發生時自動建立對應異常類別,程式可捕獲處理以確保正常結束、資源釋放與資料完整。未處理時系統自動顯示訊息框。

所有異常類別繼承自 Exception,使用者可自行衍生。Exception 定義(SysUtils 單元):

Exception = class(TObject)
private
  FMessage: PString;
  FHelpContext: Longint;
  function GetMessage: String;
  procedure SetMessage(const Value: String);
public
  constructor Create(const Msg: String);
  constructor CreateFmt(const Msg: String; const Args: array of const); ...
  destructor Destroy; override;
  property HelpContext: Longint;
  property Message: String;
  property MessagePtr: PString;
end;

建構函數最重要參數為顯示錯誤訊息,資料成員最重要為可被引用的 Message/MessagePtr,對自訂異常與處理異常均關鍵。

異常類別三大分類

Delphi 提供龐大異常體系,涵蓋程式設計各面向。大分類:執行階段庫異常、物件異常、元件異常。

1. 執行階段庫異常(RTL Exception)

定義於 SysUtils,分七類:

1.1 I/O 異常 - EInOutError

檔案/周邊操作失敗產生。繼承 Exception 並增加公開資料成員 ErrorCode 保存錯誤代碼,可針對不同錯誤採取不同對策。設定 {$I-} 時不產生異常,改將錯誤代碼回傳至預定義變數 IOResult。

1.2 堆疊異常

動態記憶體配置產生,含兩類:

異常類別觸發原因
EOutOfMemory記憶體空間不足,無法滿足配置需求
EInvalidPointer非法指標,通常因嘗試釋放已釋放指標引起

IDE 預設異常處理的局限

Delphi 提供預設自動異常處理:錯誤發生後退出當前模組並給出訊息,不立即終止應用程式。但程式執行過程性強時僅靠此法不足,易導致執行不可預測性,需開發者主動運用異常處理機制強化程式健全度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved