断言对于大型复杂程序或可靠性要求极高的程序来说有很大作用。通过断言程序员能快速地排查出问题。一个断言通常有两个参数:一个是描述假设条件为真情况的布尔表达式和需要为假是的提示或输出信息。
断言可以用于以下情况:
1、输入参数或输出参数的取值处于预期范围内。
2、子程序开始(或结束)执行时文件或流处于打开(或关闭的状态)。
3、指针非空。
4、传入子程序的数组或其他容器至少能容纳X个元素数据。
5、子程序开始(或结束)执行时,某个容器是空的(或者满的)。
正常情况下,断言主要用于开发和维护阶段。通常,断言只是在开发阶段被编译到目标代码中,而在生产代码时并不编译进去,以免降低程序的性能。
public class SimpleAbstractDemo extends AbstractDemo {
SimpleAbstractDemo(int x, int y) {
super(x, y);
}
@Override
void add() {
int num = x+y;
Assert.isTrue(num != 0,"结果是0");
System.out.println("x+y=" + num);
}
public static void main(String[] args){
AbstractDemo abstractDemo = new SimpleAbstractDemo(0,0);
abstractDemo.add();
}
}
断言要么是启用的,要么是禁用的。若是启用的,断言的执行会触发布尔表达式的计算,并且表达式结果是false,就会报告错误。若是禁用的,断言的计算无论如何都不会产生任何效果。程序不能 假设包含在断言中的表达式会被计算。因此这些表达式不会应该通常不会具有副作用。