用途:

assertion(断言)在软件开发中是一种常用的调试方式

在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。

assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的

 

通常来说,assertion用于检查一些关键的值,并且这些值对整个程序,或者局部功能的完成有很大的影响,并且这种错误不容易恢复的。

 

在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

1. assert exdivssion1;

2. assert exdivssion1: exdivssion2;

在两种表达式中,exdivssion1表示一个boolean表达式,exdivssion2是断言失败时输出的失败消息的字符串。

如果Expression1为假,则抛出一个 AssertionError,这是一个错误(Error),而不是一个异常,也就是说是一个不可控制异常(unchecked  Exception),AssertionError由于是错误,所以可以不捕获,但不推荐这样做,因为那样会使你的系统进入不稳定状态。


二.启用断言

Eclipse: compiler1.4以上,run->Arguments->VM arguments 添加-ea参数

命令行:使用-ea选项

 

总结:

一般来说,assertion用于保证程序最基本、关键的正确性。

Java 断言属于运行时断言,即可以在运行时通过选项决定打开还是关闭。

因为断言可能被禁用,因此Java 断言不能用于做业务逻辑的判断。