断言是J2SE 1.4开始引入的,其语法如下
assert <逻辑表达式>
assert <逻辑表达式> : <信息表达式>
第一种语法,如果逻辑表达式判断false时将抛出AssertionError异常,第二种语法在抛出异常的同时还会打印信息表达式的值。
断言的编译
如果使用的是 J2SE 1.4,则必须告诉编译器需要使用断言,语法如下
javac -source 1.4 <源文件>
如果使用的是 JavaSE 5.0及其后续版本,则不需要任何特殊说明。而如果需要关闭断言,需要增加一项说明如下
javac -source 1.3 <源文件>
运行时启动断言
运行命令如下
java -ea <类名>
何时使用断言
断言的目的是为了检查程序逻辑的正确性,而不是为了实现逻辑,在运行时关闭断言如果影响到程序功能,则属于滥用断言。使用断言应该注意
1,断言表达式使用前后程序的状态不变。例如,不能在断言表达式中使用诸如“++”,“--”等影响程序运行状态的运算;
2,断言失败是程序逻辑错误引起的,应该对程序进行修改,而不应该对断言失败进行捕获处理;
3,断言检查只应在开发测试阶段使用,不应在正式运行环境使用断言。