Pegar exception gerada pelo hibernate/Spring na persistência

Boa tarde usuários do fórum, estou com um problema, e talvez algum de vocês já tenha passado pela mesma coisa. O problema é que não consigo capturar a exception lançada pelo hibernate/spring quando faço alguma manipulação no banco de dados e o banco se encontra indisponível, mesmo colocando o try/catch não consigo capturar a exception para relança-la ou fazer um tratamento especial, em vez disso o hibernate ou spring já a escreve no log, mas não consigo pega-la.

Já vi aqui mesmo no fórum alguns posts relacionados, na própria documentação do spring mas não obtive sucesso, já tentei utilizar AOP com spring para tentar capturar mas nada. Deve haver no hibernate ou no spring algum interceptor que encapsule estas exceptions pois no próprio framework ele consegue loga-las mas não as relança.

Se alguém tive uma idéia de como tratar isso…

Estou utilizando Spring 2.5.6, JPA/Hibernate 3.

Desde já agradeço.

Olá pessoal, consegui resolver este problema, segue abaixo a solução que encontrei (AOP), caso alguém precise ou passe pelo mesmo… Com isto consegui pega-la, relança-la e captura-la na view.

/**
 * @author Calazans
 * */
package br.*.*.*.infra.aop;

import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import br.*.*.*.exception.SCAExeption;

@Aspect
@Component
public class ErrorManagerAspect {

	@AfterThrowing(pointcut = "execution(* repository.*.*(..))", throwing = "e")
	public void checkError(Throwable e) {
		throw new SCAExeption(e);
	}
}