簡體   English   中英

Spring AOP異常多態

[英]Spring AOP Exception Polymorphism

我有個問題。

即:我正在使用spring aop處理異常。 其中一些是我的例外情況,以防外部供應商傳遞的數據損壞。 我在針對某些類型的方面進行處理。 這樣的。

@AfterThrowing(
    pointcut =
      "execution(*myClass.myDataProcessingMethod(..))",
    throwing = "ex"
  )
public void myAspectMethod(MyException ex) {
...
}

但是,當我的數據處理工作中發生壞事,而不是錯誤的數據而是邏輯上的錯誤時,我想通知實例。 所以我有第二個方面。

@AfterThrowing(
    pointcut =
      "execution(*myClass.myDataProcessingMethod(..))",
    throwing = "ex"
  )
public void myAspectMethod(Exception ex) {
  extraInformingService.informAdamAtOnce("shitjustgotreal");
} 

但是當拋出MyException時,都會觸發這兩個方面,因為MyException是Exception的實例。

有沒有辦法只觸發指向MyException的方法?

最簡單,雖然不是很優雅的版本是這樣的:

@AfterThrowing(
    pointcut =
      "execution(*myClass.myDataProcessingMethod(..))",
    throwing = "ex"
  )
public void myAspectMethod(Exception ex) {
  if(!ex instanceof Myexception){
      extraInformingService.informAdamAtOnce("shitjustgotreal");
  }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM