语法
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有什么区别呢?。