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