Если вы хотите перехватывать каждый запрос к конечной точке вашего контроллера до того, как войдет в метод контроллера, вам нужно будет реализовать filter
.Вы можете пройти этот учебник , чтобы понять, как реализовать фильтр.
Если вы хотите перехватывать все исключения, возникающие в результате запросов к конечным точкам вашего контроллера (исключение могло быть сгенерированогде угодно - контроллер, служба, хранилище и т. д.) в одном месте, тогда вы должны реализовать ExceptionHandler
s в пределах ControllerAdvice
.Простой пример будет выглядеть следующим образом:
@ControllerAdvice
public class ExceptionHandlerAdvice {
@ExceptionHandler(MismatchedInputException.class)
public ResponseEntity<Void> handleMismatchedInputException(MismatchedInputException e) {
return ResponseEntity.status(BAD_REQUEST).build();
}
@ExceptionHandler(InvalidFormatException.class)
public ResponseEntity<Void> handleInvalidFormatException(InvalidFormatException e) {
return ResponseEntity.status(UNPROCESSABLE_ENTITY).build();
}
}
Вышеприведенное будет гарантировать, что любое исключение, указанное в обработчике исключений, будет перехвачено здесь, чтобы можно было упростить ответ исключения из вашего REST API.Больше на том же здесь .