Java 异常处理 二 断言(不重要)

断言(Assertion)是一种调试程序的方式。在Java中,使用assert关键字来实现断言。

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,AssertionError会带上消息x must >= 0。

Java断言的特点是:断言失败时会抛出AssertionError,导致程序结束退出。因此,断言不能用于可恢复的程序错误,只应该用于开发和测试阶段。

JVM默认关闭断言指令,即遇到assert语句就自动忽略了,不执行。Java虚拟机传递-enableassertions(可简写为-ea)参数启用断

 java -ea Main.java
Exception in thread "main" java.lang.AssertionError
    at Main.main(Main.java:5)

还可以有选择地对特定地类启用断言,命令行参数是:-ea:com.itranswarp.sample.Main,表示只对com.itranswarp.sample.Main这个类启用断言。

或者对特定地包启用断言,命令行参数是:-ea:com.itranswarp.sample...(注意结尾有3个.),表示对com.itranswarp.sample这个包启动断言。

断言很少被使用,更好的方法是编写单元测试。

 

posted @ 2022-09-22 09:27  云long  阅读(302)  评论(0编辑  收藏  举报