Вместо оборачивания каждого метода контроллера в try/catch Spring позволяет централизовать обработку ошибок в одном классе, аннотированном @ControllerAdvice (или @RestControllerAdvice). Методы, помеченные @ExceptionHandler, перехватывают исключения, брошенные в любом месте ваших контроллеров, и превращают их в согласованные HTTP-ответы.
Глобальный обработчик
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
