Delphi异常处理与程序调试

Delphi异常处理与程序调试,第1张

Delphi异常处理与程序调试,第2张

如何检测和处理应用程序开发中的运行错误是一个非常重要的问题。Delphi的集成开发环境(IDE)中提供了完善的内置调试器,可以帮助你找到大部分的程序错误。但并不是所有的错误都能被发现,而且当程序涉及到与外设进行数据交换或者操作外设时,比如要求用户输入、读写磁盘等。错误的发生是程序无法控制的,如输入非法字符,磁盘无法读写等。这些情况不仅会导致应用程序异常中止,还会导致系统崩溃。为了解决这些问题,Delphi还提供了强大的异常处理机制。巧妙的使用它可以使你的程序更加健壮和友好。

虽然Delphi为应用程序提供了一套默认的自动异常处理机制,即出现错误后,当前模块退出当前模块并给出错误信息,并不会立即导致应用程序停止。但是当应用执行的过程性很强时,仅仅使用这种方法是不够的,而且会容易导致程序执行的不可预测性。

12.1 Delphi的异常处理机制和异常类

Delphi的异常处理机制是基于保护块的概念。所谓保护块,就是用保留字try和end封装的一段代码。保护块的功能是在应用程序出错时自动创建相应的异常类。程序可以捕捉并处理这个异常类,以确保程序的正常结束、资源的释放和数据的不被破坏。如果程序不加工,系统会自动提供一个消息框。

类是Delphi异常处理机制的核心,也是Delphi异常处理的主要特征。下面详细介绍一下异常类的概念和体系。

Delphi提供的所有异常类都是Exception类的子类。用户还可以从Exception派生一个自定义的异常类。

异常类的定义如下,不常用的成员不列出。

{在{系统工具单位}中

异常=类(对象)

私人的

f message:p string;

FHelpContext:Longint;

函数GetMessage:String;

过程SetMessage(常数值:字符串);

公众的

构造函数Create(const Msg:String);

构造函数create fmt(const Msg:String;const Args:const的数组);。。。

析构函数Destroy覆盖;

属性HelpContext: Longint

属性消息:字符串;

属性message ptr:p string;

结束;

异常的一系列构造函数中最重要的参数是显示的错误信息。最重要的数据成员是可以引用的消息字符串(message,messagePtr)。这些信息分别在定制异常类和处理异常类中起着重要的作用。

Delphi提供了一个庞大的异常类系统,它几乎涉及编程的所有方面。从大的方面来说,我们可以把异常类分为三类:运行时异常、对象异常和组件异常。下面分别介绍一下。

12.1.1运行时库异常类(RTL异常)

运行时库异常可以分为七类,它们都是在SysUtils库单元中定义的。

12.1.1.1的I/o不正常。

I/O异常类EInOutError是在程序运行中试图对文件或外设进行操作失败后产生的。它从exception派生并添加一个公共数据成员ErrorCode来存储错误代码。该成员可用于在I/O异常发生后,针对不同的情况采取不同的对策。

设置编译指令{$I-}时,不会生成I/O异常类,但会将错误代码返回给预定义的变量IOResult。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Delphi异常处理与程序调试

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情