断言语句在调试代码阶段非常有用,断言语句一般用于 程序不准备通过捕获异常来处理的错误,例如,当发生某个错误时,要求程序必须立即停止执行。在调试代码阶段让断言语句发挥作用,
这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程序又需要调试,可以重新启用断言语句。
断言语句的语法格式
使用关键字assert声明一条断言语句,断言语句有以下两种形式:
assert booleanExpression;
assert booleanExpression:messageException;
例如,对于断言语句:
assert number>=0;
如果表达式number>=0 的值为 true,程序继续执行,否则程序立刻结束执行。
在上述断言语向的语法格式中,booleanExpression 必须是求值为 boolean 型的表达式,messageException可以是求值为字符串的表达式
如果使用
assert booleanExpression;
形式的断言语句,当booleanExpression的值为true时,程序从断言语句处继续执行;值为false时,程序从断言语句处停止执行。
如果使用
assert booleanExpression:messageException;
形式的断言语句,当booleanExpression的值为true时,程序从断言语句处继续执行;值为false时,程序从断言语句处停止执行,并输出messageException表达式的值,提示用户出了怎么样的问题。
启用与关闭断言语句
当使用Java解释器直接运行应用程序时,默认地关闭断言语句,在调试程序时可以使用-ea启用断言语句,例如:
java -ea mainclass
例子:
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
int [] score ={-120,98,89,120,99};
int sum = 0;
for(int number:score){ //数组用for遍历
assert number>=0:"负数不能是成绩";
sum=sum+number;
}
System.out.println("总成绩:"+sum);
}
}
everything in your heart!