我看到Guice和Spring使用AOP聯盟進行方法攔截,我一直在試圖弄清楚如何讓AOP聯盟攔截並處理某些異常,所以我不必保留在每個catch
區塊內反覆寫入相同的代碼。AOP異常處理
但是在審查了這個遊戲之後,它看起來並不像AOP聯盟提供的攔截攔截方式,以便處理程序/攔截器可以做一些事情(記錄異常等),然後確定是否要繼續傳播異常或只是恢復回下一行以下引發異常行:
HerpDerp hd = null;
if(hd == null)
throw new RuntimeException("Herpyl derp!");
Manny.pacquiao();
我正在尋找一個AOP的異常處理機制,攔截RuntimeException
並使用業務邏輯來決定是否繼續傳播它或在Manny.pacquioa()
呼叫中恢復。
- 如果它僅僅是不可能做到這一點在Java中,請讓我知道
- 不管其是否可能做到這一點在Java中,有沒有辦法攔截拋出的異常與AOP聯盟或我必須去別的地方嗎?如果我必須去其他地方,在哪裏? AspectJ的?
謝謝!
謝謝@Wim - 是基於AOP像AOP這樣的異常處理是不可能的? – IAmYourFaja
我不這麼認爲。如果你檢查[spring docs](http://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/html/aop.html),它會顯示: '加入點:程序執行期間的一個點,例如執行方法或處理異常。在Spring AOP中,一個連接點總是表示一個方法的執行。[ –
可能[ConstructorInterceptor](http://aopalliance.sourceforge.net/doc/org/aopalliance/intercept/ConstructorInterceptor.html)以某種方式被破解以攔截異常(因爲他們正在構建)? – IAmYourFaja