【问题标题】:Best approach for try/catch while dealing with jdbc connection处理 jdbc 连接时尝试/捕获的最佳方法
【发布时间】:2014-03-18 23:43:30
【问题描述】:

我试图找出在处理 JDBC 中的连接时使用 try/catch 的最佳方法是什么。

我个人的看法是。

Connection conn = null;
try{
    conn = getDBConnection(); 
    //Some jdbc code
} catch(SQLException e) {
    //...
} finally {
    if(conn != null) {
        try {
            conn.close();
        } catch(SQLException e) {
            //....
        }
    }
}

但我见过很少有聪明人这样做

Connection conn = null;
try{
    conn = getDBConnection(); 
    //Some jdbc code
    conn.close();
    conn = null;
} catch(SQLException e) {
    //...
} finally {
    if(conn != null) {
        try {
            conn.close();
        } catch(SQLException e) {
            //....
        }
    }
}

在try中关闭连接并将其设置为null有什么好处吗?

【问题讨论】:

  • 您的方法更好,另外,如果您使用的是 java 7,请参阅我在 try-catch here 上的回答
  • morgano 感谢您指出这一点我知道 Java 7 的酷特性但是我们仍在使用 JDK6

标签: java jdbc


【解决方案1】:

你的聪明人没那么聪明。你的方法是要走的路。在finally 块中只关闭一次连接,没有理由将连接设置为null,这就是自动垃圾回收的用途。

【讨论】:

  • 我认为聪明人担心的是,如果他们不将conn 设置为null,由于连接已经关闭,finally 中的条件检查可能会成功导致异常。谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2014-09-19
  • 2014-12-05
相关资源
最近更新 更多