语法
java中,assert关键字是从java se 1.4引入的,java默认是不启动断言检查的(这个时候所有的断言语句都被忽略),想要开启则需输入启动参数-ea 或-enableassertions
它的语法很简单
1.assert<boolean表达式>
如果表达式为true,则程序继续执行
如果为false则抛出AssertionError,并终止执行(或者可以捕获这个error)
2.assert<boolean表达式>:<错误信息表达式>
如果表达式为true,则程序继续执行
如果为false,则抛出AssertionError,并输出<错误信息表达式>
实例
public class AssertFoo { public static void main(String args[]) { //断言1结果为true,则继续往下执行 assert true; System.out.println("断言1没有问题,Go!"); System.out.println("\n-----------------\n"); //断言2结果为false,程序终止 assert false : "断言失败,此表达式的信息将会在抛出异常的时候输出!"; System.out.println("断言2没有问题,Go!"); } } 保存代码到C:\AssertFoo.java,然后按照下面的方式执行,查看控制台输出结果: 1、编译程序: C:\>javac AssertFoo.java 2、默认执行程序,没有开启-ea开关: C:\>java AssertFoo 断言1没有问题,Go! ----------------- 断言2没有问题,Go! 3、开启-ea开关,执行程序: C:\>java -ea AssertFoo 断言1没有问题,Go! ----------------- Exception in thread "main" java.lang.AssertionError: 断言失败,此表达式的信息将 会在抛出异常的时候输出! at AssertFoo.main(AssertFoo.java:10)
个人觉得这个关键字作用跟if有什么区别呢?。