Zamiast owijać każdą metodę kontrolera w try/catch, Spring pozwala scentralizować obsługę błędów w jednej klasie oznaczonej @ControllerAdvice (lub @RestControllerAdvice). Metody oznaczone @ExceptionHandler przechwytują wyjątki rzucone gdziekolwiek w twoich kontrolerach i zamieniają je w spójne odpowiedzi HTTP.
Globalny handler
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
