第一:关于try...catch...finally,我的理解如下:try中放置的是要执行的代码,如果发生了异常代码就跳转到catch,最后finally中不管是什么情况都要执行的代码;所以我们一般把关闭文件以及关闭数据库连接的代码都放到finally中执行。我现在的疑问是:因为finally是可选的,假如在大连这个项目中程序人员没有使用finally的话,那么关闭数据库的链接的这个操作要放在哪里呢?
 
 
 
第二:因为在finally块中,再次可以嵌入try....catch....的,那么关闭数据库的操作conn.close()是要放在try块的吗?try {
   result.close();
   Query.close();
   conn.close();
  } catch (SQLException e) {
 
是不是要写成这样呢?

解决方案 »

  1.   

    如果没有finally,在你每次操作结束后直接判断一下conn等是否为空,然后colse掉就行了。也就是你说的try里面,try内的代码如果出现异常会发送到catch中
      

  2.   

    finally {
          try {
            if (rs != null) {
              rs.close();
            }
            if (ps != null) {
              ps.close();
            }
            if (conndb != null) {
              conndb.close();
            }
          }
          catch (Exception e) {e.printStackTrace();
          }
        }
    如果你没有finally,直接把这段代码拿出来放在try中
      

  3.   

    不用finally的话,就写在try里面就可以了,你在用完一个链接的时候给关掉就可以了,没必要一定要写finally。
      

  4.   

    写一个公用的static方法,用于关闭连接。 ,关闭连接放try里面吧。放try的最后。
      

  5.   

     直接写一个方法CLOSE();然后再在finally调用些方法就是了哦!
      

  6.   

    其实这里没有异常会抛出的,不过JDK源码抛出了异常,那你只能处理异常或者往上抛try { 
    if(result!=null)
      result.close();
    if(Query!=null) 
      Query.close();
    if(conn!=null) 
      conn.close(); 
    } catch (SQLException e) { 
    }