我有@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
的异常(因为我不想要重复的代码),并希望在控制器建议中捕获它们。
答案 0 :(得分:1)
代码中的某处catch
干扰了控制器建议,如果有人遇到问题,请确保代码中没有捕获,以防止链接到控制器建议。