Я использую @ControllerAdvice для перехвата исключений в моем контроллере Spring Boot.
В @ExceptionHandler я могу вручную указать ограниченное количество исключений с их кодами состояния.
Мой вопрос: как я могу справиться со всеми другими исключениями и их статусами?
Я могу указать некоторые исключения с их статусами:
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<Object> argNotValidExceptionHandler(MethodArgumentNotValidException ex){
String localizeMessage = ex.getLocalizeMessage();
ErrorMessage errorMessage = new ErrorMessage(LocalDateTime.now(), localizeMessage);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorMessage);
}
Поскольку я хотел бы перехватить все исключения, похоже, мне следует дополнительно указать Exception.class со статусом INTERNAL_SERVER_ERROR в @ ExceptionHandler.
В этот момент я получу статус 500 для всех других исключений, даже с 4 ** статусами.
Как я могу создать правильный код состояния из каждого исключения, чтобы отправить его клиенту?