《构建之法》读后感-2
1. 第4章 两人合作 —— 4.3 代码设计规范 —— 4.3.3 错误处理
此处提到了“断言”的概念,但着墨不多,介绍简略。
那么问题来了,挖掘机……不是,断言是什么?
编写代码时,如果程序员相信在程序中的某个特定点某表达式值(布尔式)为真,可将其标为断言(assert)。
举个栗子:
public class AssertionDemo{
public static void main(String[]args){
int i; int sum=0;
for(i=0;i<10;i++){ sum+=i; }
assert i==10;
assert sum>10&&sum<5*10:"sum is "+sum;
}
}
上述程序中语句assert i==10断言i的值为10,如果i的值不为10将抛出AssertionError异常。语句assert sum>10&&sum<5*10:"sum is "+sum断言sum<5*10,如果为false,将抛出带有消息"sum is "+sum的AssertionError异常。
如果肯定某件事一定要发生,则可以使用断言;如果这件事有别的可能,则应用if……else处理。
由于可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。