一、对断言的简单认识:
打开断言,就能够在不变动任何一行程序的情况下帮助你对程序排除错误;
关闭断言,加入到程序中的assert命令会被java虚拟机忽略。
public static void main(String[] args) {
String s=null;
assert s!=null?true:false;
System.out.println("success");
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e1ac4136a1cceb203e558c504049bde.png)
比较上面两张截图,我们可以知道,执行java demo01命令时,将assert这条语句忽略
而执行java -ea demo01 会执行assert语句,如果assert语句为false,则报错,如果assert语句为true,则继续执行,见下图
public static void main(String[] args) {
String s="abc";
assert s!=null?true:false;
System.out.println("success");
}
二:assert命令格式
assert格式
- assert [boolean 表达式]
如果为false,则程序抛出AssertionError,并终止执行。
上面已经试验过
- assert[boolean 表达式 : 错误表达式 (日志)]
如果为false,则程序抛出java.lang.AssertionError,输出[错误信息]。
public static void main(String[] args) {
String s=null;
assert (s!=null?true:false):"s的值为空";
System.out.println("success");
}
牛刀小试,可能并不全面,欢迎补充!!!