- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++面向对象程序设计 DELPHI程序设计基础教程 第七章 异常处理 第七章 异常处理 7.1 异常与Delphi的异常类 7.2 异常保护和处理机制 7.3 异常处理应用 本章学习导读 程序运行过程中,不可避免的会出现异常或错误,我们平时所使用的操作系统也经常会出现各种问题,因此在程序的开发中如何检测和处理程序的运行错误是一个关键问题。通过Delphi的异常处理机制,可以捕获这些异常并进行处理。Delphi全面支持异常处理,定义了大量的异常处理对象,使程序能够处理几乎所有的异常情况。 本章首先介绍Delphi中的异常种类,然后介绍异常保护和处理机制,最后给出一个应用程序中处理异常的实例,使大家能深入了解异常。 7.1 异常与Delphi的异常类 异常处理机制建立在保护块的基础上,所谓保护块是指介于关键字try和end之间的一段代码,当保护块中的代码发生异常时自动创建一个相应的异常类,程序可以捕获并处理这个异常,以确保程序的正常结束以及资源的释放,若无法处理则会弹出一个消息框。 异常类是Delphi异常处理机制的核心,Delphi提供的所有异常类都从Exception类继承,Exception类包含在SysUtils单元中。 7.1 异常与Delphi的异常类 运行期间库异常类 运行期间库异常类用于处理运行期间的一些异常,运行期间库异常可以分为7类,它们都定义在SysUtils单元中。 (1)I/O异常。I/O异常EInOutError是在程序运行中试图对文件或外部设备进行操作失败后产生的,它从Exception派生后增加了一个公有数据成员ErrorCode,用于保存所发生错误的代码。在发生异常时,通过访问该属性可以针对不同情况采取不同的对策。 通过编译开关{$I}可以指定是否使用I/O异常类。当编译开关为{$I}时,将在程序中使用I/O异常类。当编译开关为{$I-}时,不产生I/O异常类,而是直接把错误代码返回到预定义变量IOResult中。 (2)堆异常。堆异常是在动态内存分配中产生的,包括2个类EOutOfMemory和EInvalidPointer。 (3)整数异常。整数异常都是从EIntError类派生的,但在程序运行中引发的总是它的子类:EDivByZero,ERangeError,EIntOverFlow。 7.1 异常与Delphi的异常类 (4)浮点异常。浮点异常都是从EMathError类派生,与整数异常相似,在程序运行中总是引发它的子类:EInvalidOp、EZeroDivide、EOverFlow、EUnderFlow。浮点异常是在进行实数操作时产生的 。 (5)类型匹配异常。当试图用As操作符把一个对象强制匹配为另一类对象失败后,引发类型匹配异常EInvalidCast。 (6)类型转换异常。当试图从一种数据类型转换为另一种数据类型时,如果不能直接转换则引发类型转换异常EConvertError。 (7)硬件异常。硬件异常在以下两种情况下发生: 1、处理器检测到一个它不能处理的错误; 2、程序产生一个中断企图中止程序的执行。 7.1 异常与Delphi的异常类 控件异常类 在操作和使用控件的过程中,不可避免的会遇到控件异常。控件异常分为预定义异常和通用异常。Delphi为某些特定的控件预定义了一些常见的异常情况,这类异常被称为预定义异常。所有控件都可能出现的异常被称为通用异常。 (1)预定义异常 Delphi为许多控件都定义了异常类,下面介绍几个典型的预定义异常: 1、EMenuError 2、EInvalidGridOperation 3、EDatabaseError和EReportError (2)通用异常 Delphi定义了许多通用异常,下面介绍几个常用的通用异常: 1、EInvalidOperation 2、EComponentError 3、EOutOfResource 7.1 异常与Delphi的异常类 其它组件异常 其它组件异常是指除了控件以外的其它组件引发的异常,包括流异常、图形异常、打印异常和字符串链表异常等。 (1)流异常。流异常包括EStreamError、EFCreateError、EFOpenError、EFileError、EReadError、EWriteError、EClassNotFound,流异常在Classes库单元中定义 (2)图形
文档评论(0)