断言是使用Java中的 assert
语句实现的。 在执行断言时,它被认为是正确的。 如果失败,JVM会抛出一个名为 AssertionError
的错误。 它主要用于开发过程中的测试目的。
assert
语句与布尔表达式一起使用,可以用两种不同的方式编写:
assert expression; assert expression1 : expression2; 复制代码
public class AssertTest { public static void main(String[] args) { int value = 15; assert value >= 20 : " Underweight"; System.out.println("value is " + value); } } 复制代码
输出:
value is 15 复制代码
可以看到 assert
语句并没有起作用,这是因为Java在执行程序的时候默认是不启动断言检查的,即所有的断言语句都将被忽略。
如果要开启断言检查,则需要使用 -enableassertions
或 -ea
JVM参数来开启;如果要手动忽略断言检查,则可以通过使用 -disableassertions
或 -da
JVM参数来忽略断言语句。
执行命令 java -ea AssertTest
开启断言后的输出:
Exception in thread "main" java.lang.AssertionError: Underweight at AssertTest.main(AssertTest.java:11) 复制代码
使用第一种无错误信息提示的语法编写:
public class AssertTest { public static void main(String[] args) { int value = 15; assert value >= 20; System.out.println("value is " + value); } } 复制代码
输出:
Exception in thread "main" java.lang.AssertionError at AssertTest.main(AssertTest.java:11) 复制代码