搜索
Java 教程 / Java assert 关键字

Java assert 关键字

定义和用法assert 关键字用于评估一个布尔表达式,如果该表达式评估结果为 false,则抛出 AssertionError 异常。当异常被抛出时,我们说断言


定义和用法

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"。