Namesto da vsako metodo kontrolerja oviješ v try/catch, Spring omogoča, da obravnavo napak centraliziraš v enem razredu, anotiranem z @ControllerAdvice (ali @RestControllerAdvice). Metode, označene z @ExceptionHandler, ujamejo izjeme, vržene kjerkoli v tvojih kontrolerjih, in jih spremenijo v dosledne HTTP odgovore.
Globalni obravnavalec
{
ApiError {
(, ex.getMessage());
}
ApiError {
ex.getBindingResult().getFieldErrors().stream()
.map(e -> e.getField() + + e.getDefaultMessage())
.collect(Collectors.joining());
(, msg);
}
}
