Ich sehe, dass Guice und Spring AOP Alliance unter der Haube für Methodenabfangen verwenden, und ich habe versucht herauszufinden, wie man AOP Alliance abfangen und mit bestimmten Ausnahmen umgehen kann, so dass ich sie nicht behalten muss in jedem catch
Block den gleichen Code immer und immer wieder schreiben.AOP Exception Behandlung
Aber nach dem Spiel bewerten, es sieht nicht wie AOP Allianz bietet jede mögliche Weise geworfen abzufangen Throwable
s derart, dass der Handler/Interceptor einige Dinge tun können (log die Ausnahme, etc.) und dann bestimmen, ob die Ausnahme weiter zu verbreiten oder nur zu erholen nach der Zeile in der nächsten Zeile zurück, die die Ausnahme ausgelöst hat:
HerpDerp hd = null;
if(hd == null)
throw new RuntimeException("Herpyl derp!");
Manny.pacquiao();
ich bin für eine AOP-Ausnahmebehandlung suchen, die RuntimeException
abfangen würde und verwenden Sie Geschäftslogik, um zu entscheiden, ob Sie es weiter verbreiten oder bei dem Aufruf Manny.pacquioa()
wiederherstellen möchten .
- Wenn es einfach nicht möglich, ist dies in Java zu tun, bitte mich
- Unabhängig davon wissen lassen, ob sie möglich, dies in Java zu tun, gibt es einen Weg geworfen Exception mit AOP Allianz abzufangen oder Muss ich woanders hingehen? Und wenn ich irgendwo anders hingehen muss, wo? AspectJ?
Vielen Dank!
Dank @Wim fangen - ist AOP-basierte Ausnahmebehandlung ist mit AOP Alliance nicht möglich? – IAmYourFaja
Ich glaube nicht. Wenn Sie die [spring docs] (http://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/html/aop.html) überprüfen, wird folgendes angezeigt: 'Join point : ein Punkt während der Ausführung eines Programms, z. B. die Ausführung einer Methode oder die Behandlung einer Ausnahme. In Spring AOP stellt ein Join-Punkt immer eine Methodenausführung dar. –
Konnte [ConstructorInterceptor] (http://aopalliance.sourceforge.net/doc/org/aopalliance/intercept/ConstructorInterceptor.html) irgendwie gehackt werden, um Ausnahmen abzufangen (wie sie gebaut sind)? – IAmYourFaja