前言
assert是Java中关键字,表示断言。在jdk1.4之后引入的,编译器默认不开启断言。与使用assertEquals,assertNotNull类似的方法不一样,因为他们来源于org.junit.Assert,在不引入jar的前提不能使用。而assert是Java自带,仅在开发和测试阶段使用。
在一个具有自我保护能力的程序中,确信某个属性符合要求,并且代码的执行依赖于这个属性。我们希望属性的调用者提供一个正确的数据,还是希望进行检查,以免避免数据错误造成的问题。
提供两种解决方案
1、throw new Exception
但是上述代码会一直保留在程序中,即使测试完毕后也不会自动删除。如果程序中含有大量的这种检查,程序运行起来会比较慢。当然小编还提供第二种解决方案
2、使用断言
断言机制在测试阶段向代码插入一些检查语句。在代码发布的时候,这些插入的检测语句会自动地移走。
assert 两种使用形式
1、assert 条件;
2、assert 条件:表达式;
两种形式均会对传入的表达式进行检查,如果结果为false,会抛出AssertionError异常,在第二种形式中,表达式将被传入AssertionError的构造器,并转化为一个消息字符串。
例如:
1、检查x是否为非负数,简单的判断使用方式一
assertx>=0;
2、想要把x的实际显示出来,可以把x的值传给AssertionError对象,从而可以在后面显示出来。
assertx>=0:x;