[英]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.