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

Delphi 物件異常類別詳解:串流、列印、圖形、字串清單四大類異常結構與觸發條件完整對照

     編輯:Delphi

物件異常概述

指非元件物件引發的異常,包含串流、列印、圖形、字串清單等異常。

1. 串流異常類別體系

定義於 Classes 單元,繼承結構:

EStreamError
|-- EFCreateError
|-- EFOpenError
|-- EFilerError
|-- EReadError
|-- EWriteError
|-- EClassNotFound

觸發條件對照表

異常類別觸發原因
EStreamErrorLoadFromStream 方法讀取串流發生錯誤
EFCreateError建立檔案時發生錯誤
EFOpenError開啟檔案時發生錯誤
EFilerError嘗試再次註冊已存在物件
EReadErrorReadBuffer 方法無法讀取指定位元組數
EWriteErrorWriteBuffer 方法無法寫入指定位元組數
EClassNotFound視窗上元件從視窗型別定義中刪除

2. 列印異常類別

EPrinter:列印發生錯誤時引發。定義於 Printers 單元。例:嘗試向不存在印表機列印、列印工作無法送達印表機。

3. 圖形異常類別

定義於 Graphics 單元,含兩類:

EInvalidGraphic

嘗試從不包含合法點陣圖、圖示、中繼檔或自訂圖形型別的檔案載入圖形時觸發。例:

Image1.Picture.LoadFromFile('Readme.txt');  { txt 非圖形檔 }

EInvalidGraphicOperation

嘗試對圖形進行非法操作時觸發。例:嘗試改變圖示大小:

var AnIcon: TIcon;
begin
  AnIcon := TIcon.Create;
  AnIcon.LoadFromFile('C:\WINDOWS\DIRECTRY.ICO');
  AnIcon.Width := 100;  { 引發圖形異常,圖示大小不可變 }
  ...
end;

4. 字串清單異常

EStringListError、EListError:使用者對字串清單進行非法操作時引發。因眾多元件(TListBox、TMemo、TTabSet 等)擁有 TStrings 重要屬性,此類異常在元件操作程式設計中極實用。

EStringListError - 索引越界

例:初始化三項目的清單框,存取 Item[3](第四項,索引 0 基準)引發:

ListBox1.Items.Add('First item');
ListBox1.Items.Add('Second item');
ListBox1.Items.Add('Third item');
ListBox1.Items[3] := 'Not Exist';  { 引發 }
str := ListBox1.Items[3];           { 引發 }

EListError - 重複與排序衝突

兩種情境:

  1. Duplicates=dupError 時嘗試加入重複字串;
  2. 嘗試向已排序字串清單插入字串(Sorted=True 時僅能透過 Add 維持排序)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved