Delphi异常处理的基本原则和方法

原创 2004年09月18日 11:21:00

一、异常的来源。

Delphi的应用程序中,下列的情况都比较有可能产生异常。

1)文件处理

2)内存分配

3Windows资源

4)运行时创建对象和窗体

5)硬件和操作系统冲突

?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

二、异常的处理。

1tryexceptend;

try体内的代码发生异常时,系统将转向except部分进行异常的处理。这是Delphi处理异常的最基本的方式之一。

?

2tryfinallyend;

这种异常处理结构一般用于保护Windows的资源分配等方面,它确保了无论try体内的代码是否发生异常,都需要由系统进行最后的统一处理的一些Windows对象的正确处理。

try…except…end不同,该结构的finally部分总被执行。

?

3)不存在try…except…finally…end结构来既处理异常,又保护资源分配的结构,但是,try…except…end结构允许嵌套到try…finally…end结构中,从而实现既处理异常,又保护资源的分配。

?

?

三、异常的精确处理。

1)定义一个异常。

Delphi中,每个异常都是Exception[1]类的一个派生类[2]。因此,定义一个异常就是定义一个Exception类的派生类。

type EMyException = class(Exception);

当然,基类可以是Exception或者Exception的任何一个任何层次的派生类。

?

2)在程序中抛出一个异常。

根据不同的情况抛出异常是使用异常的最基本的模式。在Delphi中,由raise语句来实现。

【语法】raise 异常类.Create(‘异常的缺省说明’);

?

3)在try…except…end中更加精确的捕捉异常。

使用on E:异常类 do结构可以在do体内处理特定异常类所抛出的异常。

?

四、异常的调试。

Delphi IDE中,解除“Debugger Options”(可以使用菜单Tools>Debugger Options…进行访问)中的Integrated Debugging复选框的勾选状态可以进行异常的调试。

?

五、异常的补充说明。

1)每一段程序都有可能产生错误!这是软件业的一个不容置疑的现象和规律。事实上,传统的if…else…结构完全可以解决所有的错误,使用Exception机制也没能够回避在最原始的层次,通过遍历可能的情况来产生异常的做法,那么,为什么还要异常机制?

答案很清楚:异常提供了一种更加灵活和开放的方式,使得后来的编程者可以来根据实际的情况处理这种错误,而不是使用预先设定好的处理结果。实际上,我觉得,这也就是异常机制的核心。



[1] Exception类的定义在SysUtils单元中。

[2] Delphi也支持不从Exception继承的异常类,但是我觉得这么做并不十分的明智。

Delphi异常处理的基本原则和方法

function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text...
  • nicrowang
  • nicrowang
  • 2007年11月04日 13:32
  • 430

delphi学习点滴——异常处理的基本原则和方法

一、异常的来源   在Delphi的应用程序中,下列的情况都比较有可能产生异常。      (1)文件处理      (2)内存分配      (3)Windows资源      (...
  • lynnelxl
  • lynnelxl
  • 2011年12月22日 13:34
  • 222

Delphi异常处理机制

转自:http://blog.sina.com.cn/s/blog_5d9ee55e010103kr.html   Delphi的异常处理方式有两种:try...except...end;try....
  • chelen_jak
  • chelen_jak
  • 2015年12月07日 12:24
  • 842

信息分类的基本原则与方法

信息分类应根据信息内容的属性或特征,按照一定的规范和标准直,为了方便信息的交流与共享,应遵循以下原则: 1.  科学性 :在分类时,应选准信息的最稳定的本质属性,作为分类的基础和依据,确保一个稳定的...
  • tm6230610
  • tm6230610
  • 2013年09月30日 13:47
  • 7034

软件工程基本原则

软件工程方法基本原则 1、抽象:采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性。 2、模块化:模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。 3...
  • yuanya
  • yuanya
  • 2013年05月14日 10:19
  • 1372

Delphi异常处理与调试

Delphi异常处理与调试   3.1 Delphi异常处理 3.1.1 异常处理的意义 所谓异常,可以理解为一种特殊的事件。当这种特殊的事件发生时,程序正常的执行流程将被打断。异常处...
  • sforiz
  • sforiz
  • 2013年08月27日 10:25
  • 5154

异常处理的基本原则

http://m.oschina.net/blog/201687
  • bloomzy
  • bloomzy
  • 2014年06月17日 14:08
  • 342

delphi异常处理

Delphi异常处理与调试3.1 Delphi异常处理3.1.1 异常处理的意义所谓异常,可以理解为一种特殊的事件。当这种特殊的事件发生时,程序正常的执行流程将被打断。异常处理机制能够确保在发生异常的...
  • whd0310
  • whd0310
  • 2007年07月19日 13:46
  • 7149

对面向对象编程的6个基本原则的理解

单一职责原则 定义:一个类中应该是一组相关性很高的函数,数据的封装。 做法:根据对业务和需求的理解,去划分一个类,一个函数的职责。 举例:比如要实现一个加载图片的功能,并在加载图片的时候实...
  • c15522627353
  • c15522627353
  • 2016年04月12日 00:30
  • 1066

重载+异常处理+类型转换

1.String str = "3";    int i = Integer.parseInt(str);  //将字符串转为整形 类似的有 Float.parseFloat    System.ou...
  • qq_36092584
  • qq_36092584
  • 2016年10月12日 09:05
  • 244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi异常处理的基本原则和方法
举报原因:
原因补充:

(最多只允许输入30个字)