Statt jede Controller-Methode in try/catch zu wickeln, lässt dich Spring die Fehlerbehandlung in einer Klasse zentralisieren, die mit @ControllerAdvice (oder @RestControllerAdvice) annotiert ist. Mit @ExceptionHandler markierte Methoden fangen Exceptions, die irgendwo in deinen Controllern geworfen werden, und verwandeln sie in konsistente HTTP-Antworten.
Ein globaler Handler
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
