断言【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;
运行结果: