/**
* validate校验 异常统一捕捉处理类
*/
@ControllerAdvice
public class WebExceptionHandler {
/**
* 处理请求参数格式错误 @RequestBody上validate失败后抛出的异常是MethodArgumentNotValidException异常
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public JsonData MethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) {
String message = e.getBindingResult().getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining());
//下边ResultCodeEnum.PARAMS_BS_ERROR.getCode()就是你自己自定义的返回code码
return JsonData.buildError(ResultCodeEnum.PARAMS_BS_ERROR.getCode(),message);
}
/**
* 处理Get请求中 使用@Valid 验证路径中请求实体校验失败后抛出的异常
*/
@ExceptionHandler(BindException.class)
@ResponseBody
public JsonData BindExceptionHandler(BindException e) {
String message = e.getBindingResult().getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining());
return JsonData.buildError(ResultCodeEnum.PARAMS_BS_ERROR.getCode(),message);
}
/**
* 处理请求参数格式错误 @RequestParam上validate失败后抛出的异常是ConstraintViolationException
*/
@ExceptionHandler(ConstraintViolationException.class)
@ResponseBody
public JsonData ConstraintViolationExceptionHandler(ConstraintViolationException e) {
String message = e.getConstraintViolations().stream().map(ConstraintViolation::getMessage).collect(Collectors.joining());
return JsonData.buildError(ResultCodeEnum.PARAMS_BS_ERROR.getCode(),message);
}
}
SpringBoot捕捉异常统一处理
最新推荐文章于 2024-09-26 17:38:52 发布