【发布时间】:2020-06-29 22:53:47
【问题描述】:
下面是我的 ExceptionHandler 方法,用于处理可以从服务类抛出的不同异常。
@ExceptionHandler({ExceptionA.class, ExceptionB.class, ExceptionC.class})
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public void handle(ExceptionA e) {
log.error("Exception occurred: {} {}", e.getMessage(), e);
}
当抛出 ExceptionA 时,一切都按预期工作。但是当抛出 ExceptionB 时,它会给出错误No suitable resolver for argument 0 of type 'ExceptionA'。我猜是因为句柄方法的方法参数是异常A(我仍然希望错误消息应该是No resolver for Exception B)。
handle 方法的方法参数应该是什么,以便它可以处理 3 个异常中的任何一个?
注意:所有异常都是通过从 RuntimeException 扩展来创建的。
【问题讨论】:
标签: spring spring-boot spring-mvc