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这个包启动断言。
断言很少被使用,更好的方法是编写单元测试。

浙公网安备 33010602011771号