与其把每个 controller 方法都用 try/catch 包起来,Spring 让你把错误处理集中到一个标注了 @ControllerAdvice(或 @RestControllerAdvice)的类里。标注了 @ExceptionHandler 的方法会捕获你的 controller 中任何地方抛出的异常,并把它们变成一致的 HTTP 响应。
一个全局处理器
java
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
