目录
1. 使用场景
Java断言的关键字是assert,主要用于平时的开发调试阶段(不可用于正式环境),检测代码运行时是否满足某条件,方便开发者找出bug。
2. 使用方式
(1)assert 条件表达式
(2)assert 条件表达式 :附加信息
当条件表达式为true时,表示断言测试成功,继续执行assert后面的代码。
当条件表达式为false时,表示断言测试失败,抛出错误(有附加信息则显示附加信息),程序停止运行。
注意:断言失败抛出的是错误而非异常,错误是无法被捕获的。
IDEA默认关闭断言,需要设置JVM参数 -ea -Dfile.encoding=UTF-8 来开启断言。如下所示:
public class AssertTest {
public static void main(String[] args) {
boolean flag = true;
// flag为true,表示断言测试成功,继续执行assert后面的代码
assert flag : "flag is false, occur error";
System.out.println("pass assert");
// 输出:
// pass assert
}
}
public class AssertTest {
public static void main(String[] args) {
boolean flag = false;
// flag为false,表示断言测试失败,抛出错误(有附加信息则显示),且程序停止运行
assert flag : "flag is false, occur error";
System.out.println("pass assert"); // 不打印,因为assert抛出了错误
}
}
上述代码会抛出如下错误信息:
Exception in thread "main" java.lang.AssertionError: flag is false, occur error
at com.zh.java.assertTest.AssertTest.main(AssertTest.java:8)
Process finished with exit code 1