未在ResponseEntityExceptionHandler

时间:2019-05-13 22:38:36

标签: java spring spring-boot inheritance exception

我有一个简单的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

0 个答案:

没有答案