Моя основная задача заключалась в том, чтобы отлавливать определенные пользователем исключения и возвращать общие ответы.Для этого я использовал @ControllerAdvice с @ExceptionHandler.См. Пример ниже
@ControllerAdvice
public class CustomGlobalExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(PersonNotFoundException.class)
public void handleBadPostalCode(HttpServletResponse response) throws IOException {
response.sendError(HttpStatus.BAD_REQUEST.value(), "Invalid person Id");
}
@ExceptionHandler(Exception.class)
public void handleDefault(Exception e, HttpServletResponse response) throws IOException {
e.printStackTrace();
response.sendError(HttpStatus.INTERNAL_SERVER_ERROR.value(), "Unknown error happened");
}
}
PersonNotFoundException обрабатывается, как ожидается.Но обработчики по умолчанию других исключений пропали и возвращается только Http-код без тела.Очевидно, это ожидаемое поведение при расширении ResponseEntityExceptionHandler.Я могу переопределить другие исключения по умолчанию, но это не идеально.Использование универсального обработчика Exception.class заставит меня вернуть один HTTP-код для всех из них.
ТАК Я ищу способ обрабатывать свои собственные исключения глобально в ControllerAdvice или подобном без необходимости переопределения по умолчаниюобработчики исключений
Спасибо