
上QQ阅读APP看书,第一时间看更新
7.5 断言(assert)
在JDK 1.4之后,Java中增加了断言的功能。断言就是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检查肯定会提示错误信息。断言的定义格式如下。
【格式7-3 断言】

如果上面的boolean表达式的结果为true,则什么错误信息都不会提示,如果为false,则会提示错误信息;如果没有声明详细信息的描述,则系统会使用默认的错误信息提示方式。
【例7.16】下面的程序使用了断言

上面的程序中,数组x的长度是不可能为0的,所以,此处的断言结果是错误的,但此时运行程序并不会得到任何的结果,这是因为Java在设计此关键字的时候,考虑到了系统的应用。为了防止某些用户使用assert作为关键字,所以在程序正常运行时断言并不会起任何的作用,如果要想让断言起作用,则在使用Java运行时应该加入以下的参数:

下面使用以上的参数运行程序,运行程序格式如下:

程序运行时出现以下错误:

上面出现的是断言错误,因为数组x的长度不可能是0,但此时的信息是系统默认的错误信息,如果要想显示自己的错误信息,可以使用另外一种断言声明格式。
【例7.17】Test代码修改如下:

再次验证断言,出现以下的信息:

上面的代码就是将自定义的错误信息进行输出,当然,如果此时断言的结果是正确的,验证肯定不会有任何的问题。
注意
断言的使用。
(1)虽然断言返回的是boolean值,但是其并不能作为条件判断语句出现。
(2)断言虽然有检查运行结果的功能,但是一般在开发中并不提倡使用断言。