Capturar Excessão do hibernate

Tenho este método

entityManager.getTransaction().begin();
entityManager.merge(meuObjeto);
entityManager.getTransaction().commit();

Aonde ao salvar esse objeto, ele lança uma ConstraintViolationException.
Porém, mesmo botando um try catch nesse código, a excessão continua a ser lançada pelo java, e eu não consigo captura-la.
Detalhe que mesmo usando um Exception eu não consigo capturar nenhuma excessão.

O que eu acho é que o hibernate tem alguma classe interna que captura o erro do JDBC e ele não faz o throws dessa excessão, simplesmente manda um printStacktrace, impossibilitando capturar essa excessão.
Tem alguma solução pra isso?

Nem com Throwable?

Nem com Throwable!
Se eu usar o Session do hibernate eu até consigo capturar a excessão, apesar de ela continuar estourando la no console…
Mas usando o Persistence do JPA não tem jeito de capturar e ela sempre lança no console…
Será que não tem que configurar alguma coisa no xml de configuração pra nunca lançar excessões automaticamente?