@validated注解异常信息处理
时间: 2023-09-21 20:12:37 浏览: 67
@validated 注解是 Spring 框架中用于对请求参数进行校验的注解。当请求参数不满足校验规则时,会抛出 MethodArgumentNotValidException 异常。为了处理这个异常,可以通过全局异常处理器进行统一处理。
首先,创建一个全局异常处理器类,用于处理 MethodArgumentNotValidException 异常:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public ResponseEntity<String> handleValidationExceptions(MethodArgumentNotValidException ex) {
List<String> errors = ex.getBindingResult()
.getFieldErrors()
.stream()
.map(error -> error.getField() + ": " + error.getDefaultMessage())
.collect(Collectors.toList());
String errorMessage = String.join(", ", errors);
return new ResponseEntity<>(errorMessage, HttpStatus.BAD_REQUEST);
}
}
```
在上面的代码中,我们使用 @ControllerAdvice 注解将这个类标记为全局异常处理器。然后,在 handleValidationExceptions 方法中,我们通过调用 ex.getBindingResult().getFieldErrors() 方法获取到所有的校验错误信息,并将其转换为一个字符串。最后,我们使用 ResponseEntity 将错误信息和 HTTP 状态码返回给客户端。
这样,当出现参数校验失败的情况时,就会被全局异常处理器捕获并返回相应的错误信息。