Pegar uma Exception

Olá

Quando no persistence.xml não coloco a senha do BD ocorre uma exceção na linha 12.
só que eu não estou conseguindo pega a exceção com o try catch, da forma que esta.
Eu só quero pegar a Exception e imprimir uma mensagem “Não conectado ao banco de Dados”.

public class JPAUtil   {


    
//	private static EntityManagerFactory entityManagerFactory = Persistence
//			.createEntityManagerFactory("financas");
	
	private static EntityManagerFactory entityManagerFactory;

	public EntityManager getEntityManager() {
		try{
		 entityManagerFactory = Persistence
					.createEntityManagerFactory("financas");
		}catch(SQLException e){
			System.out.println(e.getMessage());
		}
		return entityManagerFactory.createEntityManager();
	}

Exception:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:925)
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1704)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1250)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
	at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:204)
	at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:194)
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178)
	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:505)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1750)
	at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:920)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:72)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	at br.com.caelum.financas.util.JPAUtil.getEntityManager(JPAUtil.java:18)
	at br.com.caelum.financas.teste.TesteConsulta.main(TesteConsulta.java:18)

Já tentou usando o Exception genérico?

Ao final pode capturar Throwable que estará no nível mais abstrato possível e pegará qualquer “throwable”.
Exemplo:

try{

//codigo

}catch(QualquerException e){

//tratamento exception especifica

}catch(Throwable t){

//tratamento para qualquer coisa lancada nao tratada

}