手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi 异常处理与程序调试(一)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
$N-},选择利用运行时间库进行浮点运算,问题就可以解决了。  

  各种类型的浮点数(RealSingleDoubleExtended)越界引起同样的溢出异常。这同整数异常类是不同的。 

12.1.1.5 类型匹配异常

  类型匹配异常EInvalidCast当试图用As 操作符把一个对象与另一类对象匹配失败后引发。 

12.1.1.6 类型转换异常

  类型转换异常EConvertError当试图用转换函数把数据从一种形式转换为另一种形式时引发,特别是当把一个字符串转换为数值时引发。下面程序中的两条执行语句都将引发一个EConvertError异常。

var

rl : Real;

int: Integer;

begin

rl := StrToFloat(' $140.48');

int := StrToInt(' 1,402 ');

end; 

要注意并不是所有的类型转换函数都会引发EConvertError异常。比如函数Val当它无法完成字符串到数值的转换时只把错误代码返回。利用这一点我们在(6.2)节中实现了输入的类型和范围检查。 

12.1.1.7 硬件异常

  硬件异常发生的情况有两种:或者是处理器检测到一个它不能处理的错误,或者是程序产生一个中断试图中止程序的执行。硬件异常不能编译进动态链接库(DLLs)中,而只能在标准的应用中使用。

  硬件异常都是EProcessor异常类的子类。但运行时间并不会引发一个EProcessor 异常。 

   表12.5  硬件异常类及其产生原因

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

异常类 引发原因

─────────────────────────────────

Efault 基本异常类。是其它异常类的父类

EGPFault 一般保护错。通常由一个未 初始化的指针或对象引起

EStackFault 非法访问处理器的栈段

EPageFault Windows内存管理器不能正确使用交换文件

EInvalidOpCode 处理器碰到一个未定义的指令。这通常意味着处理器

试图去操作非法数据或未初始化的内存

EBreakPoint 应用程序产生一个断点中断

ESingleStep 应用程序产生一个单步中断

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

  EFaultEGPFault 往往意味着致命的错误。而EBreakPointESingleStepDelphi IDE的内置调试器处理。事实上前边的五种硬件异常的响应和处理对开发者来说都是十分棘手的问题。 

上一篇: Delphi 异常处理与程序调试(二)
下一篇: Delphi 异常处理与程序调试(三)

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!