2015-03-30 4 views
0

У меня есть webapp с использованием Spring + Hibernate через JPA, Spring эффективно переводит все исключения с сохранением в вариации DataAccessException.Поймать DataAccessExceptions с AOP

Я сейчас пытаюсь поймать эти DataAccessExceptions в АОП срезом точек, как это:

@Aspect 
public class AspectException { 


    @AfterThrowing(pointcut = "within(com.mypackage.dao..*)", throwing = "error") 
    public void catchException(Throwable error) { 
     MyOwnException e = new MyOwnException("ERROR!", error); 
     throw e; 
    } 
} 

Сейчас этот аспект работает, если в моей DAO я бросаю специальное исключение, но не будет работать с весны DataAccessExceptions!

Любая идея, почему это происходит?

+0

На самом деле я считаю, что трудно поверить, что это должно работать для одного типа исключения, а не для другого, если ваш параметр совет не не напечатал 'Throwable', как в вашем примере, но конкретного подтипа не соответствует «DataAccessException». Даже в [Руководстве по весне] (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-advice-after-throwing) упоминается 'DataAccessException' как работающий пример для '@ AfterThrowing'. – kriegaex

ответ

0
+0

Не уверен, что это именно то, что вы пытаетесь сделать, хотя ... –

+0

Я хочу перевести все исключения с сохранением в один из моих собственных –

+0

Могу ли я спросить, почему вы хотите перевести все исключения? Что-то вроде этого: http://stackoverflow.com/questions/14729227/exception-handling-strategy-with-spring-jpa-jsf –

Смежные вопросы