【发布时间】:2020-01-18 09:58:59
【问题描述】:
我想要一些关于如何实现以下目标的建议。我没有提供代码,因为我的问题是理论上的,但我可以根据要求提供。所以情况是这样的:
- 我有多个控制器,每个控制器都可以抛出 XYException
- 我有一个@ControllerAdvice 类,其中有一个@ExceptionHandler 监视XYExceptions。当它发生时,它会打印出“XY”。
- 在一个(也是唯一一个)控制器中,当 XYException 被抛出时,我想做一些额外的任务(比如说,做一些只有那个控制器才能做的事情),然后我希望异常被“传递”到上面提到的全局处理程序。
我知道我可以捕获异常,在 catch 块中执行所需的任务,然后重新抛出异常以便全局处理程序可以捕获它,但是如果我在控制器中有 23 个方法可能会抛出 XYExceptions,而我不想在所有 23 种方法中都放入 try-catch 块。
什么是干净的 Spring 实现这一目标的方法?
【问题讨论】: