捕获@Validated异常信息并返回
时间: 2023-10-31 14:13:57 浏览: 60
在Spring Boot中,我们可以使用@ExceptionHandler注解来处理全局异常,包括@Validated注解所抛出的异常。以下是一个简单的例子:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorResponse handleValidationException(MethodArgumentNotValidException ex) {
BindingResult bindingResult = ex.getBindingResult();
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
List<String> errorMessages = new ArrayList<>();
for (FieldError fieldError : fieldErrors) {
errorMessages.add(fieldError.getDefaultMessage());
}
return new ErrorResponse("Validation Failed", errorMessages);
}
}
```
上面的代码会捕获MethodArgumentNotValidException异常,该异常是由@Validated注解所抛出的异常。在异常处理方法中,我们可以获取到所有字段的验证错误信息,并将其封装到一个ErrorResponse对象中,最终以JSON格式返回给客户端。
注意,@ControllerAdvice注解用于定义一个全局的异常处理器,@ExceptionHandler注解用于声明处理特定异常的方法。此外,@ResponseStatus注解用于指定返回给客户端的HTTP状态码,@ResponseBody注解用于将返回值转换为JSON格式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)