因为我们平时不会用java自带的assert断言,基本都是junit之类的成熟框架,之所以会想到这个,是因为在java9的ArrayDeque中看到的如下的源码:
assert既然是为了调试测试程序用,应该不在正式生产环境下用吧,但是这个源码中为什么会有呢?
assert使用的方式,有如下的方式:
1、assert <boolean表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
2、assert <boolean表达式> : <错误信息表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>。
当然默认jvm是没有开启断言的,比如Idea可以配置改成这样,eclipse估计也是差不多的,开关-enableassertions或-ea来开启:
比如我写个如下的例子:
输出: