断言:是一个Java布尔表达式,程序员热为程序执行该表达式的值应该为true,若为false则应抛出一个异常
格式:assert expression;
assert expression : detailMessage;
expression: 是一个所要满足的条件
detailMessage:是基本数据类型或Object
当断言执行false,返回一个AssertionError异常
AssertionError
*此类存在一个默认的构造方法和七个重载的构造方法,参数为下:
int, long, byte, float, double, char, boolean, Object
*第一种格式返回的没有详细反馈信息,利用AssertionError的默认构造方法
第二中格式利用类型相匹配的构造方法
断言和异常的区别:
断言:是验证程序的正确性,对程序本身的正确性有强调,比如:逻辑上的错误
异常:是强调程序在不正常的环境中运行出现错误
*不要在public方法中使用断言进行参数检查,因为不管用
*用断言替换代码:
if(even){} else{} ----> if(even){} else{assert !even : ...;} switch(a) { case 1: .... break; ... default: assert false : "error" + a; }