对于下面的代码,会否产生部份对象不能收回???
还有一个我关心的地方,就是如果中途代码有问题,throw了一个异常后, con 对像会否自动 close ?try {
Connection con = xxx.open();Statement ....
While(rs.next())
{
...
}
...
close();
}
catch(Exception e)
{
System.out.println("exception :"+e.getMessage());
}

解决方案 »

  1.   

    不会的  throw了一个异常后, 下面的就不会在执行了
    、等垃圾回收
      

  2.   

    try { 
    Connection con = xxx.open(); Statement st .... 
    While(rs.next()) 

    ... 

    ... } 
    catch(Exception e) 

    System.out.println("exception :"+e.getMessage()); 
    }finally
    {
    rs.close();
    st.close();
    con.close(); 
    }
    这样不管你怎么折腾都会关闭了  给分~~~
      

  3.   

    close ()方法是写在finally 
    里面的但是ls的不完整
      

  4.   

    rs.close(); 
    st.close(); 
    con.close();  
    先判断rs st con 是否为null如果为null才可以执行rs.close(); 
    st.close(); 
    con.close();
      

  5.   

    to koj5201314,
    你在 finally 里指定 
    con.close()是否会有错误呢?
    Connection 定义的范围........其实正确标准的写法会是怎么样 ?
      

  6.   

    To xiyuan19999
    另外,如果 Connection 对象在 Close 的时候出现了异常,而你却把代码写在 finally 里又会有什么情况发生呢 ?
      

  7.   

    Connection con = null;
    try { 
       con = xxx.open();    con.setAutoCommit(false);
       con.commit();

    catch(Exception e) 

       try{
         con.rollback();
       }
       catch(Exception ex){
       }
       System.out.println("exception :"+e.getMessage()); 
    }finally{
       try{
         con.close();
       }
       catch(Exception ex){
       }
    }