У меня есть простой обработчик исключений Spring Boot, который обрабатывает исключения контроллера REST глобально (см. Ниже).
@RestControllerAdvice(annotations = RestController.class)
@EnableWebMvc
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyCustomExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value = { SomeCustomException.class })
public ResponseEntity<Object> hanldeSomeCustomException(SomeCustomException ex) {
// ...
}
}
My SomeCustomException
наследует другое пользовательское исключение, например ParentCustomException
, который содержит свойство, скажем, parentProperty
(private).
Когда выбрасывается Exception
, я ловлю его и выбрасываю новый SomeCustomException
с этим набором унаследованных свойств (parentProperty
). Я могу видеть значение в этом SomeCustomException
объекте, когда он выбрасывается, вместе со свойством, которое принадлежит только SomeCustomException
, например, someCustomProperty
.
Однако, когда логика попадает в обработку исключений (hanldeSomeCustomException()
), ex
содержит значение только для SomeCustomException.someCustomProperty
, но не ParentCustomException.parentProperty
.
Может кто-нибудь сказать мне, почему это так и как я могу обработать мой SomeCustomException
со значением для parentProperty
?