知识大全 异常处理与程序调试(一)[2]

Posted 类型

篇首语:运气就是机会碰巧撞到了你的努力。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 异常处理与程序调试(一)[2]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:异常处理与程序调试(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  EIntOverFlow异常类在Integer Word Longint三种整数类型越界时引发 如

  var

  I : Integer;

  a b c : Word;

  begin

  a := ;

  b := ;

  c := ;

  for I := to do

  begin

  c := a*b*c;

  end;

  end;

  引发一个EIntOverFlow异常

  EIntOverFlow异常类只有在编译选择框Option|Project|Over_Flow_Check Option选中时才产生 当关闭溢出检查 则溢出后变量保留该类整数的最大范围值

  整数类型的范围如下表

  表 整数类型的范围

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

  类型 范围 格式

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

  Shortint   有符号 位

  Integer   有符号 位

  Longint   有符号 位

  Byte   无符号 位

  Word   无符号 位

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

   浮点异常

  浮点异常是在进行实数操作时产生的 它们都从一个EMathError类派生 但与整数异常相同 程序运行中引发的总是它的子类EInvalidOp EZeroDivide EOverFlow EUnderFlow

  表 浮点异常类及其引发原因

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

  异常类 引发原因

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

  EInvalidOp 处理器碰到一个未定义的指令

  EZeroDivide 试图被零除

  EOverFlow 浮点上溢

  EUnderFlow 浮点下溢

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

  EInvalidOp最常见的引发原因是没有协处理器的机器遇到一个协处理器指令 由于在缺省情况下Delphi总是把浮点运算编译为协处理器指令 因而在 以下微机上常常会碰到这个错误 此时只需要在单元的接口部分设置全局编译指示$N 选择利用运行时间库进行浮点运算 问题就可以解决了

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

   类型匹配异常

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

   类型转换异常

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

  var

  rl : Real;

  int: Integer;

  begin

  rl := StrToFloat( $ )

  int := StrToInt( )

  end;

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

   硬件异常

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

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

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

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

  异常类 引发原因

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

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

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

  EStackFault 非法访问处理器的栈段

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

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

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

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

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

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

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

cha138/Article/program/Delphi/201311/25192

相关参考

知识大全 异常处理与程序调试(一)[3]

DELPHI基础教程:异常处理与程序调试(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(一)[1]

DELPHI基础教程:异常处理与程序调试(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(二)[2]

DELPHI基础教程:异常处理与程序调试(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(三)[2]

DELPHI基础教程:异常处理与程序调试(三)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(二)[3]

DELPHI基础教程:异常处理与程序调试(二)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(二)[1]

DELPHI基础教程:异常处理与程序调试(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(二)[4]

DELPHI基础教程:异常处理与程序调试(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(三)[3]

DELPHI基础教程:异常处理与程序调试(三)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 异常处理与程序调试(三)[1]

DELPHI基础教程:异常处理与程序调试(三)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

SBR调试程序

(一)活性污泥的培养驯化  SBR反应池去除有机物的机理与普通活性污泥法基本相同,主要大量繁殖的微生物群体降解污水中的有机物。  活性污泥处理系统在正式投产之前的首要工作是培养和驯化活性污泥。活性污泥