我的用例要求我检查DBConnections以确保我们具有正确的URL。
说我们有10个Oracle数据库的列表,并且DB4的连接URL格式错误。我们想捕获db4连接失败,但仍然要检查列表中所有剩余的DB。
allDBs = {DB1 {用户名,URL,密码},DB2 {用户名,URL,密码},.... DB10 {用户名,URL,密码}}
DBList <DbDetails> allDBs = new DBList <DbDetails>();
try{
for(DbDetails db : allDBs)
{
dbUrl = db.getDbUrl();
dbUsername = db.getUserName();
dbPassword = db.getPass();
DbDetails dbDetails = new DbDetails(dbUrl, dbUsername, dbPassword);
dataSource = dbConfig.setOrclDataSource(dbDetails);
conn = dataSource.getConnection();
String selectQuery = "select 1 from dual";
SqlFunction sf = new SqlFunction(dataSource, selectQuery);
sf.compile()
}
}
catch(SQLException se){
connFailDBList.add(dbDetail);
LOG.error(se.getMessage());
}
由于DB4网址格式错误。通过上述逻辑,SQLException被捕获到DB4。但是如何恢复列表中剩余DB的检查?
只需交换for
周期和try-catch
:
DBList <DbDetails> allDBs = new DBList <DbDetails>();
for(DbDetails db : allDBs){
try{
// checking connectivity here
}catch(SQLException se){
connFailDBList.add(dbDetail);
LOG.error(se.getMessage());
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句