断言【Delphi版】

一.基本概念

  只是一个“验证推断”的调式工具,而不是程序的一部分。
  a)断言作用:顾名思义,开发者用于“验证自己的推断”的工具,调试阶段使用。
                   简单的参数验证——变量
                   复杂的条件验证——函数
    简而言之, 断言是用来验证我们编码时所做的假设,而不是用来处理
  运行时的各种逻辑分支。

 

  b)开启与关闭

     整个IDE: Project—>Option—>Compiler—>Assertion

     代码中:{$ASSERTIONS ON} ,{$ASSERTIONS OFF}

 

  C)何处使用

     1)私有函数中进行“参数检查”
     2)适当的地方,检查系统中的某些关键变量
          对于公共函数,通常不使用assertion检查,因为一般来说,公共函数
     必须对无效的参数进行检查和处理。而私有函数往往是直接使用的。
         如果触发了断言,说明私有函数的“调用者出了差错”——没有保证好参数的范围   

 

  PS: 为什么私有函数里的条件检查不用if-else,而用断言
       1)断言更加简洁
       2)编码习惯上,私有函数通常“直接使用参数,而不检查”,程序的release版本里,
       断言可以直接去除。

 

二.应用实例

    调用私有函数:

begin
  {$ASSERTIONS ON}
  Self.SetUserInfo('Terry',200);
end;

    私有函数:

procedure TFrmMain.SetUserInfo(name: string; age: integer);
begin
   ASSERT(((age>0)and(age<120)), '年龄输入超出范围!!');
   
   Self.FName:=name;
   Self.FAge:=age;
end;

    运行结果:

   

原文地址:https://www.cnblogs.com/edisonfeng/p/2513426.html