Delphi 异常处理与程序调试(二)
2008-02-23 07:16:12来源:互联网 阅读 ()
12.1.2 对象异常类
所谓对象异常是指非部件的对象引发的异常。Delphi定义的对象异常包括流异常、打印异常、图形异常、字符串链表异常等。
12.1.2.1 流异常类
流异常类包括EStreamError、EFCreateError、 EFOpenError、EFilerError、EReadError、EWriteError、EClassNotFound。它们的结构关系如下:
EStreamError
|---------- EFCreateError
|---------- EFOpenError
|---------- EFilerError
|--------- EReadError
|--------- EWriteError
|--------- EClassNotFound
图
12.1 流异常结构图流异常在Classes库单元中定义。
流异常引发的原因如表12.6。
表12.6 流异常类及其产生原因
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
异常类 引发原因
─────────────────────────────────
EStreamError 利用LoadFromStream方法读一个流发生错误
EFCreateError 创建文件时发生错误
EFOpenError 打开文件时发生错误
EFilerError 试图再次登录一个存在的对象
EReadError ReadBuffer方法不能读取特定数目的字节
EWriteError WriteBuffer方法不能写特定数目的字节
EClassNotFound 窗口上的部件被从窗口的类型定义中删除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12.1.2.2 打印异常类
打印异常类EPrinter当打印发生错误时引发。它在printers库单元中定义。例如你的应用程序试图向一个不存在的打印机打印或由于某种原因打印工作无法送到打印机时,就会产生一个打印异常。
12.1.2.3 图形异常类
图形异常类定义在Graphic 库单元中,包括EInvalidGraphic和EInvalidGraphicOperation两类。
EInvalidGraphic当应用程序试图从一个并不包含合法的位图、图标、元文件或用户自定义图形类型的文件中装入图形时引发。例如下面的代码:
Image1.Picture.LoadFromFile('Readme.txt');
由于Readme.txt并不包含一个合法的图形,因而将引发一个EInvalidGraphic异常。
EInvalidGraphicOperation当试图对一个图形进行非法操作时引发。例如试图改变一个图标的大小。
var
AnIcon: TIcon;
begin
AnIcon := TIcon.Create;
AnIcon.LoadFromFile('C:\Windows\DIRECTRY.ICO');
AnIcon.Width := 100; { 引发一个图形异常 }
...
12.1.2.4 字符串链表异常
字符串链表异常EStringListError、EListError在用户对字符串链表进行非法操作时引发。由于许多部件(如TListBox,TMemo,TTabSet,…)都有一个TStrings类的重要属性,因而字符串链表异常在部件操作编程中非常有用。
EStringListError异常一般在字符串链表越界时产生。例如对如下初始化的列表框:
ListBox1.Items.Add('First item');
ListBox1.Items.Add('Second item');
ListBox1.Items.Add('Third item');
则以下操作都会引起
EStringListError异常:ListBox1.Item[3] := ' Not Exist';
str := ListBox1.Item [3];
EListError异常一般在如下两种情况下引发:
1.当字符串链表的Duplicates属性设置为dupError时,应用程序试图加入一个重复的字符串;
2.试图往一个排序的字符串链表中插入一个字符串。
12.1.3 部件异常类
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Delphi自定义部件开发(五)
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash