ControllerAdvice不触发特定异常

时间:2016-12-22 18:13:39

标签: spring spring-boot exception-handling

我有@RestControllerAdvice(春季启动1.4.2),看起来像这样

@RestControllerAdvice
public class GlobalControllerExceptionHandler {    
    @ExceptionHandler(value = { AvailabilityException.class })
    public RestResponse availabilityException(AvailabilityException ex) {
        //logic
    }

    @ExceptionHandler(value = { HrsException.class })
    public RestResponse hrsException(HrsException ex) {
        //logic
    }
}

此类捕获HrsException类型的激活但不捕获AvailabilityException类型的异常

HrsException

public class HrsException extends RuntimeException {
   public Integer errorCode;
   public String messageKey;
}

AvailabilityException

public class AvailabilityException extends HrsException {
}

所以我猜测AvailabilityException没有被控制器建议抓住,因为它延伸了HrsException,对此的解释是什么以及如何继续有这个设计?

基本上我想创建一堆继承自HrsException的异常(因为我不想要重复的代码),并希望在控制器建议中捕获它们。

1 个答案:

答案 0 :(得分:1)

代码中的某处catch干扰了控制器建议,如果有人遇到问题,请确保代码中没有捕获,以防止链接到控制器建议。