网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何减小应用程序(EXE)的大小?.
.通用查询组件设计(续二).
.类似Access查找中的记忆功能.
.使用Delphi创建IIS虚拟目录.
.Delphi中布尔类型辨析.
.动态隐藏/显示窗口的标题栏(同时.
.强角点检测算子的Pascal实现代码.
.在Delphi中ADSI创建Windows用户帐.
.Delphi的压缩流与解压流.
.Delphi常见图象格式转换技术.
.使用DLL文件中封装的窗口.
.进程查看器1.3版开发后记.
.用Delphi编写点对点传文件程序(2).
.《Delphi高手突破》第一章——预.
.发掘ListBox的潜力(二):鼠标拖.
.delphi多线程程序示例(与.net一样.
.基于阻塞Socket(Indy)的远程控制.
.用delphi制作抖动窗体.
.一个简单Tracer类,用来为应用写入.
.Delphi图象截取编程示例(1).

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

发表日期:2006-2-4


一、异常的来源。

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

1)文件处理

2)内存分配

3Windows资源

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

5)硬件和操作系统冲突

?

二、异常的处理。

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字符中包括单引号(') 人气:6955
下一篇:TStringGrid多选的复制与拷贝 人气:3984
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐