Можно ли избежать объявления проверенного исключения в сигнатуре метода, когда этот метод равен aspect-wrapped
. У меня есть следующее:
Пользовательское исключение, которое Я не могу изменить (при условии)
class MyEx extends Exception {
...
}
метод, который вызывает исключение:
public MyObject readCounter() throws MyEx {
^^^^^^^^^^^^
// Would like to avoid declaring this
...
}
этот метод упакован с аспектом AOP Spring:
@Around("execution(* com.mypackage.myService.*(..))" +
" && @annotation(com.mypakage.service.annotation.AspectWrapped) && args(args)")
public Object aroundServiceCallMethod(ProceedingJoinPoint point, Object args) throws SomeAnotherException {
try {
Object result = point.proceed();
} catch (Throwable e) {
// Ignore
}
return null;
}
Как видите, метод readCounter
никогда не сгенерирует MyEx
проверенное исключение, потому что аспект aroundServiceCallMethod
здесь подавляет все исключения.
Могу ли я сделать что-нибудь с методом readCounter
или аспектным методом aroundServiceCallMethod
, чтобы избежать объявления throws MyEx
в сигнатуре метода?
Единственный хак для меня - это Ломбок SneakyThrows но я считаю, что это не лучшее, потому что мне все еще нужно объявить об исключении, но в аннотации.