Αντί να τυλίγεις κάθε controller method σε try/catch, το Spring σου επιτρέπει να συγκεντρώσεις τον χειρισμό σφαλμάτων σε μία class με annotation @ControllerAdvice (ή @RestControllerAdvice). Οι methods που φέρουν @ExceptionHandler πιάνουν exceptions που πετάγονται οπουδήποτε στους controllers σου και τα μετατρέπουν σε συνεπείς HTTP απαντήσεις.
Ένας καθολικός handler
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
