我看到 Guice 和 Spring 在后台使用 AOP Alliance 进行方法拦截,我一直在试图弄清楚如何让 AOP Alliance 拦截和处理某些异常,这样我就不必继续编写相同的代码了在每个catch
街区内重新来过。
但是看了下戏,好像AOP联盟并没有提供任何拦截 throwedThrowable
的方式,让handler/interceptor可以做一些事情(记录异常等),然后判断是否传播进一步的异常或只是恢复到引发异常的行之后的下一行:
HerpDerp hd = null;
if(hd == null)
throw new RuntimeException("Herpyl derp!");
Manny.pacquiao();
我正在寻找一种 AOP 异常处理机制,它会拦截并使用业务逻辑来决定是继续传播它还是在调用RuntimeException
时恢复它。Manny.pacquioa()
- 如果在 Java 中无法做到这一点,请告诉我
- 不管它是否可以在 Java 中做到这一点,有没有办法用 AOP 联盟拦截抛出的异常,或者我必须去别的地方。如果我必须去别的地方,在哪里?方面J?
谢谢!