前言
在这篇文章我给大家演示一下自定义异常类的编写,在业务编写时可以返回我们的自定义异常信息
和状态码
等
模拟场景:
- 如果参数为
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】'
}