19.断言

1.断言

在Java中,使用assert关键字来实现断言。
断言失败时会抛出AssertionError,导致程序结束退出。因此,断言不能用于可恢复的程序错误,只应该用于开发和测试阶段。

1.1使用

Java断言有两种形式:

  • 简单形式:
assert condition;

如果condition为false,抛出AssertionError

  • 带消息形式:
assert condition : expression;

如果condition为false,抛出AssertionError并显示expression的值

public static void main(String[] args) {
    double x = Math.abs(-123.45);
    assert x >= 0 : "x must >= 0";
    System.out.println(x);
}

语句assert x >= 0;即为断言,断言条件x >= 0预期为true。如果计算结果为false,则断言失败,抛出AssertionError

Exception in thread "main" java.lang.AssertionError: x must >= 0
    at Main.main(Main.java:6)

1.2 启用断言

默认情况下断言是禁用的,必须显式启用:

  • 运行时启用:
java -ea MyClass       # 启用所有断言
java -ea:MyClass MyClass # 仅启用MyClass中的断言
java -da:MyClass MyClass # 禁用MyClass中的断言
  • 在IDE中启用:
Eclipse: Run → Run Configurations → Arguments → VM arguments: -ea
IntelliJ: Run → Edit Configurations → VM options: -ea
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容