У меня проблема.Spring AOP Exception Polymorphism
А именно: Я использую Spring aop для обработки исключений. Некоторые из них являются моими исключениями, которые бросаются в случае поврежденных данных, поставляемых сторонним поставщиком. Я обрабатываю их в аспектах, указывающих на определенный тип. Такие, как этот.
@AfterThrowing(
pointcut =
"execution(*myClass.myDataProcessingMethod(..))",
throwing = "ex"
)
public void myAspectMethod(MyException ex) {
...
}
Но когда что-то плохое happends в моей обработке данных работы, и это не дефектные данные, но ошибка в моей логике, я хочу получать информацию о инстанции. Поэтому у меня есть второй аспект.
@AfterThrowing(
pointcut =
"execution(*myClass.myDataProcessingMethod(..))",
throwing = "ex"
)
public void myAspectMethod(Exception ex) {
extraInformingService.informAdamAtOnce("shitjustgotreal");
}
Но когда вызывается MyException, оба аспекта увольняются, потому что MyException является экземпляром Exception to.
Есть ли способ запустить только метод, указывающий на MyException?
Да я думал об этом, но так как есть много «моих» исключений она будет расти от «не очень элегантно», чтобы неприемлемо. Спасибо anyways :-) –
Но, может быть, если я создам абстрактный класс, который будет базой наследования для всех «моих» исключений, он завершится только одним оператором if. Спасибо^2: D –