私は私の春Bacthアプリに次のコードを持っている:JDBCテンプレートでSqlInvalidAuthorizationSpecExceptionを捕捉する方法は?
JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSouce);
log.debug(getPropKey()+"Calling DB for records...");
List<DataLoadRecordClass> rows = null;
try {
rows = jdbcTemplate.query(queryStringFormated, new DataRecordRowMapper());
} catch (Exception ex) {
log.error(getPropKey()+"FATAL: Database call failed wtih : " + ex.getMessage());
}
私はそれを間違ったユーザ名/パスワードを供給した場合、それは
2017-07-17 13:38:31,945 31363 ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException: [jcc][t4][2013][11249][4.12.55] Connection authorization failure occurred. Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000
をスローしかし、上記の試みはそれをキャッチしません。これらのエラーをどうやって捕らえることができますか?今はエラーが発生したときに何がエラーになったのか気にすることさえできません。
私はこのような多くのStack Over Flowの投稿を見てきましたが、それらのすべてが私が試したキャッチ "DataAccessException"と言われていますが、それはうまくいかないのですが、例外をキャッチするのはどの/
SqlInvalidAuthorizationSpecExceptionをキャッチする別のキャッチブロックを記述するか、printStackTraceを使用できます。 – sForSujit
既に試してみました。あなたはSqlInvalidAuthorizationSpecExceptionをキャッチすることはできません(コンパイラはあなたを止めるでしょう)。 – VydorScope
は役立ちませんhttps://developer.ibm.com/answers/questions/16409/sqlinvalidauthorizationspecexception-unable-to-connect-to-db2-database.html – sForSujit