断言的理解: 断言他满足条件不抛异常; 不满足断言时产生异常;
业务需求:判断某个查询对象为空,直接返回错误信息
常见写法:
if (ObjectUtil.isNull(object)){
return XXXX
}
Assert 写法
这句代码的意思是 如果对象为空就提示并返回异常消息,异常消息由统一异常捕捉并返回
Assert.isFalse(ObjectUtil.isNull(object), StatusEnum._NOT_EXIST, param);
用的是hutool 的工具包
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.18</version>
</dependency>
看源码
public static void isFalse(boolean expression, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
isFalse(expression, () -> {
return new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params));
});
}
expression: 你需要判断的条件
errorMsgTemplate:提示出去的异常消息模板
params:异常消息里要替换的参数
示例:
Assert.isFalse(1 == 1,"提示消息{}","我是消息值");
测试代码
import cn.hutool.core.lang.Assert;
public class StringTest {
public static void main(String[] args) {
Assert.isFalse(1 == 1,"提示消息{}","我是消息值");
}
}
消息模板统一用一个枚举类写在一起