关于异常在数据库中的处理
对于下面的代码,会否产生部份对象不能收回???
还有一个我关心的地方,就是如果中途代码有问题,throw了一个异常后, con 对像会否自动 close ?
try {
Connection con = xxx.open();
Statement ....
While(rs.next())
{
...
}
...
close();
}
catch(Exception e)
{
System.out.println("exception :"+e.getMessage());
}
------解决方案--------------------不会的 throw了一个异常后, 下面的就不会在执行了
、
等垃圾回收
------解决方案--------------------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();
}
这样不管你怎么折腾都会关闭了 给分~~~
------解决方案--------------------to koj5201314,
你在 finally 里指定
con.close()是否会有错误呢?
Connection 定义的范围........
其实正确标准的写法会是怎么样 ?
------解决方案--------------------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){
}
}