Java assert 关键字
定义和用法
assert 关键字用于评估一个布尔表达式,如果该表达式评估结果为 false,则抛出 AssertionError 异常。当异常被抛出时,我们说断言失败。
可以添加一个可选的表达式,该表达式在断言失败时将用作异常消息。
默认情况下,断言是禁用的。除非启用断言,否则 assert 语句将被忽略。
断言的目的是在调试和测试程序时,清晰地标记出程序执行了非预期的操作的地方。
实例
使用 assert 来测试表达式的真值:
public class Main {
public static void main(String[] args) {
// 启用断言
ClassLoader loader = ClassLoader.getSystemClassLoader();
loader.setDefaultAssertionStatus(true);
// 运行 assert 示例
AssertExample example = new AssertExample();
example.run();
}
}
class AssertExample {
public void run() {
int a = 12;
try {
assert a == 12; // 没有失败消息的断言
assert a == 12 : "a 不是 12";
assert a == 15 : "a 不是 15";
} catch (AssertionError e) {
System.out.println(e.getMessage());
}
}
}
在这个例子中,首先启用了断言。然后,在 AssertExample 类的 run 方法中,有三个断言语句。前两个断言(a == 12)都会通过,因为变量 a 的值确实是 12。第三个断言(a == 15)会失败,因为它不正确,因此会抛出一个 AssertionError 异常,并显示消息 "a 不是 15"。