JPA/Hibernate tratar erro em createEntityManagerFactory como?

Oi,
Pergunto-me como posso capturar uma possível exceção usando JPA, quando cria uma nova instância com EntityManagerFactory? Estou trabalhando com Hibernate 3.3.1 e Entitymanager 3.4.0.

Por exemplo, se o banco de dados não é alcançável ou assim, gostaria de pegar a ressalva, porém não tenho conseguido fazê-lo. Atingir o Throwable também não funciona.

Aqui está o meu código.


try { 
EntityManagerFactory emf = Persistence.createEntityManagerFactory("my_database", null); 
} catch (Throwable t) { 
//Quero ir para aqui, se alguma coisa correr mal ...
System.out.println("** Error: " + t.getMessage()); 
} 


- com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@f1f051 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2592)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1509)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
	at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledCo

Acho que se nem Throwable resolveu , então não deve ter outro jeito de capturar esta Exceção. De alguma forma o JPA deve está capturando a Exceção ou deve está lançado alguma exceção da classe Error e não consegui propagar a Exceção por exemplo como um erro de “StackOverflowError”.