Užuot apvyniojus kiekvieną kontrolerio metodą try/catch, Spring leidžia centralizuoti klaidų tvarkymą vienoje klasėje, pažymėtoje @ControllerAdvice (arba @RestControllerAdvice). Metodai, pažymėti @ExceptionHandler, gaudo išimtis, mestas bet kur jūsų kontroleriuose, ir paverčia jas nuosekliais HTTP atsakymais.
Globalus handleris
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
