Invece di avvolgere ogni metodo del controller in try/catch, Spring ti permette di centralizzare la gestione degli errori in una classe annotata @ControllerAdvice (o @RestControllerAdvice). I metodi marcati @ExceptionHandler catturano le eccezioni sollevate ovunque nei tuoi controller e le trasformano in risposte HTTP coerenti.
Un handler globale
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
