java在执行的时候,默认是不执行断言语句的,需要手动设置下jvm虚拟参数打开开关:
-ea 或者-enableassertions
assert用法:
2.1 assert <boolean表达式>
boolean表达式为true时,程序正常执行,boolean表达式为false时,程序从断言处停止执行。
2.2 assert <boolean表达式> :'错误信息'
boolean表达式为true时,程序正常执行,boolean表达式为false时,程序从断言处停止执行。并输出错误信息,提示用户。
代码展示:
public static void main(String args[]) {
//断言1结果为true,则继续往下执行
assert 2>1;
System.out.println("断言1正常执行");
System.out.println("\n-----------------\n");
//断言2结果为false,程序终止
assert 1>2 : "断言失败,此表达式的信息将会在抛出异常的时候输出!";
System.out.println("断言2报错,无法执行该打印");
}
下面是打印的信息:
断言1正常执行
-----------------
Exception in thread "main" java.lang.AssertionError: 断言失败,此表达式的信息将会在抛出异常的时候输出!
at com.haileer.dd.dingdingserver.ChelateserverApplication.main(ChelateserverApplication.java:26)
断言主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出。千万不要让断言处理业务流程,一般都是通过异常处理来解决程序中潜在的错误。使用断言就很危险,一旦失败系统就挂了。