2012-01-18 32 views
11

Todo es brillante hasta que encuentro un lugar donde realmente necesito detectar excepciones. Cuando colocospring jdbc ¿Cómo se detecta la excepción?

jdbcTemplate.query(something...) 

en

try{} 

bloque consigo:

Unreachable catch block for SQLException. This exception is never thrown from the try statement body. 

¿Qué hago en esta situación?

try{ 
    personIdReturnedByDb = jdbcTemplate.queryForInt(sql, p.getEmail(), 
      p.getName(), p.getSurname(), encPw, dateSql); 
} 

catch(SQLException sa){ 


} 

gracias,

+2

No hay ninguna SQLExcepciones; Spring los envuelve en una RuntimeException; Olvidé el nombre de clase raíz. –

+0

debe hacer que una respuesta. – hvgotcodes

Respuesta

27

Eso es porque SQLException, una excepción comprobada, no es lanzado por el cualquiera de los métodos JdbcTemplate.query(...) (javadoc link). Primavera se traduce esto a uno de los DataAccessException, que es la familia más genérico de excepciones de tiempo de ejecución, con el fin de abstraer cualquier aplicación específica de base de datos subyacente.

4

debe detectar la excepción JdbcTemplate

es decir,

try 
{ 
    // Your Code 
} 
catch (InvalidResultSetAccessException e) 
{ 
    throw new RuntimeException(e); 
} 
catch (DataAccessException e) 
{ 
    throw new RuntimeException(e); 
} 
Cuestiones relacionadas