2012-01-18 6 views
11

私は実際に例外をキャッチする必要がある場所に出会うまで、すべてが鮮やかです。私はspring jdbcTemplate例外をキャッチする方法は?

jdbcTemplate.query(something...) 

try{} 

でブロックを置くと私が取得:

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

私はこのような状況で何をしますか?

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

catch(SQLException sa){ 


} 

SQLException、チェック例外は、 JdbcTemplate.query(...)のいずれかの方法によってスローされていないためだ
+2

SQLExceptionsはありません。 SpringはRuntimeExceptionでそれらをラップします。私はルートクラス名を忘れています。 –

+0

あなたはそれを答えるべきです。 – hvgotcodes

答えて

27

javadoc link)が。春のより一般的な家族である、DataAccessExceptionの1にこれを翻訳、ありがとうございました抽象離れて任意の特定の基礎となるデータベースの実装への順序で実行時例外、。

4

あなたはJdbcTemplate例外をキャッチする必要があり

すなわち

try 
{ 
    // Your Code 
} 
catch (InvalidResultSetAccessException e) 
{ 
    throw new RuntimeException(e); 
} 
catch (DataAccessException e) 
{ 
    throw new RuntimeException(e); 
} 
関連する問題