I stedet for at pakke hver controller-metode ind i try/catch lader Spring dig centralisere fejlhåndtering i én klasse annoteret med @ControllerAdvice (eller @RestControllerAdvice). Metoder markeret med @ExceptionHandler fanger exceptions kastet hvor som helst i dine controllere og forvandler dem til konsistente HTTP-svar.
En global handler
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
