/**
* 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-08-10 09:13:19 发布
本文介绍了一种统一处理HTTP请求参数校验异常的方法,通过自定义控制器建议类实现对不同请求方式下参数验证失败的异常捕获,并返回统一的错误信息。
8307

被折叠的 条评论
为什么被折叠?



