前言
在这篇文章我给大家演示一下自定义异常类的编写,在业务编写时可以返回我们的自定义异常信息
和状态码
等
模拟场景:
- 如果参数为
null
或者为空
则抛出我们自定义的异常。
案例
首先创建一个CustomException
类,并继承RuntimeException
public class CustomException extends RuntimeException {
private final String msg;
private final int code;
public CustomException() {
super();
}
public CustomException(int code, String message) {
super(message);
this.code = code;
this.msg = message;
}
public CustomException(String message) {
super(message);
this.msg = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return msg;
}
}
然后我们创建一个全局异常处理类GlobalExceptionHandler
,在里面处理我们抛出的异常处理。(可自定义异常处理)
这里返回的
DataResult
是封装的结果集,可以去这个链接查看里面对应的内容:统一结果集
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(CustomException.class)
public DataResult businessException(CustomException customException) {
return DataResult.error(customException.getcode(), customException.getMessage())
}
}
在这里将我们的异常信息和状态码进行封装返回。
测试
我这里使用接口测试,大家也可以在测试类中进行测试。这个方法用于判断参数,在接口中调用此方法
并且传入参数进行校验。
private void judgeParam(String param) {
if (param == null || "".equals(param){
throw new CustomException("缺少参数【param】");
}
}
如果校验通过则处理以下代码,否则返回异常给前端
@RequestMapping("test")
public DataResult test(String param){
judgeParam(param);
...
//代码
}
测试结果
请求参数
{
param: ''
}
请求结果
{
code: -1,
msg: '缺少参数【param】'
}