我有一个简单的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) {
// ...
}
}
我的SomeCustomException
继承了另一个自定义异常,例如ParentCustomException
,其中包含一个属性,例如parentProperty
(私有)。
当抛出Exception
时,我将其捕获并抛出一个新的SomeCustomException
并设置了此继承属性(parentProperty
)。当抛出该SomeCustomException
对象时,我可以看到它的值以及仅属于SomeCustomException
的属性,例如someCustomProperty
。
但是,当逻辑进入异常处理(hanldeSomeCustomException()
)时,ex
仅包含SomeCustomException.someCustomProperty
的值,而不包含ParentCustomException.parentProperty
的值。
有人可以告诉我为什么会这样吗,如何用SomeCustomException
的值来处理parentProperty
?