b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(87)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

Declaring exception types(声明异常类型)异常类的声明和其它类一样,实际上,使用任何类的一个实例表示异常是可行的,但推荐从- 116 -

try...finally封装起来进行保护,但实际上最好EinOutError异常FalseSysUtils单元的话)

Object I/O和操作系

Assert语句失败时,the standard SysUtils单

,不会引发异常。只有当判断一个你

Classes and objects

元的Exception类进行派生。

你能应用继承关系给异常分组,比如,下面是SysUtils单元中的声明,它为计算错误定义了一组异常类 type

EMathError = class(Exception);

EInvalidOp = class(EMathError);

EZeroDivide = class(EMathError);

EOverflow = class(EMathError);

EUnderflow = class(EMathError);

给定上面的声明,你能定义一个单一的EMathError异常处理程序,它也能处理EInvalidOp、EZeroDivide、EOverflow和EUnderflow异常。

有时,异常类会定义字段、方法和属性,它们用来传达一些额外的错误信息。比如,

type EInOutError = class(Exception)

ErrorCode: Integer;

end;

Raising and handling exceptions(引发和处理异常)

Raising and handling exceptions(引发和处理异常)

要创建一个异常对象,在raise语句中调用异常类的构造函数。pascal 视频教程比如,

raise EMathError.Create;

通常,raise语句的格式是

raise object at address

这里,object和at address都是可选的。若省略了object,则语句重新引发当前异常,请参考Re-raising exceptions;当指定了一个地址,它通常是指向过程或函数的指针,使用这个选项,可使异常从堆栈中一个较早点引发,而不是从它实际发生的地点引发(use this option to raise the exception from an earlier point in the stack than the one where the error actually occurred)。

当引发一个异常时,也就是使用了raise语句(referenced in a raise statement),它将受异常处理逻辑的控制。一个raise语句永远不会以正常方式返回控制,相反,它把控制权交给能处理指定的异常(类)、并且在最内层的异常处理程序(最内层是指最后进入但还没有退出的一个try...except块)。

比如,下面的函数把一个字符串转换为整数,若结果超出指定的范围则引发一个ERangeError异常。 function StrToIntRange(const S: string; Min, Max: Longint): Longint;

begin

Result := StrToInt(S); // StrToInt在SysUtils单元声明

if (Result < Min) or (Result > Max) then

raise ERangeError.CreateFmt(


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-87.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...