Assert过程的使用方法

减小字体 增大字体 作者:不详  来源:不详  发布时间:2010-12-16 22:35:44

procedure Assert (expr: Boolean [; const msg: string]);
 
Assert是一个标准过程,用来检验一个布尔表达式是否是正确的。

用Assert可作为一个调试工具来检验设想为真的条件是否从来没有被违反过。Assert提供一个机会来阻止一个未预料的情况,并且停止一个程序而不是允许其在非预料的情况下继续运行。

Assert获取一个布尔表达式和一个可选信息串作为参数。如果布尔测试失败Assert发送一个EassertionFailed异常。或一个信息串通过Assert,则异常将被创造并告知和那个信息串在一起,否则一个缺省信息串被创造以表示Assert失败了。连同全路径名此信息被展现,并且显示Assert失败行号。

组件库保持了所有的异常,如果没有用户代码包括组件库,一个EassertionFailed异常将出现,像在一个控制台应用程序内,接着运行时间库将发出运行时间错误runtime error 227且中断程序。因为一个产品所购买的版本中,中断是不经常的在运行时间时被使用,编辑器将声明以阻止中断代码的产生。它们是以下:

         S ASSERTIONS ON/OFF   (long form)
         S C +/-               (short form)
例子:

{S APPTYPE CONSOLE}

program Plop;

{S IFNDEF OLDSTYLE}

uses SysUtils;

{S ENDIF}

type
   TList=^TListDesc;
   TListDesc=record
   name:string;
   next:Tist;
end;

var
  Item:TList;
begin
  NEW(Item);
  Item.name:=name;
  Item.next:=Head;
  Head:=Item;
end;

procedure PrintList(nofItems:Integer; list:TList);
begin
   while (nofItems > 0) and (list <> NIL) do
   begin
     WriteLn(list.name);
     list:=list.next;
     dec(nofItems);
  end;
  assert(list = NIL, ‘Supplied list length does not match actual length’);
end;

begin
  Head: NIL;
  Add(‘Dawg’);
  Tail:=Head;
  Add(‘Fifi’);
  Add(‘Phideaux’);
  Tail.next:=Head;
  PrintList(3,Head);
end

Tags:

作者:不详
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论