关闭连接的正确方法??

flymanwlq 2004-07-27 08:49:47
正常来说是应该在finally中关闭,但是如果方法把异常抛出,没有try,catch对,那么在那里关闭数据库连接之类的呢?
...全文
175 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
IceJava 2004-07-28
  • 打赏
  • 举报
回复
pleonheart(只睡六小时) 的办法比较合理~~~
ToAble 2004-07-28
  • 打赏
  • 举报
回复
我通常是这么做的
...
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
}catch(SQLException ex){}
try
{
if(stmt != null)
{
stmt.close();
stmt = null;
}
}catch(SQLException ex){}
try
{
if(con != null)
{
con.close();
con = null;
}
}
当然还要根据具体情况可能会有轻微变化,不过这个应该比较通用
iorisiori 2004-07-28
  • 打赏
  • 举报
回复
。。。。。。。。。。。。前面的Try写的太多了,没及时改,就给了个finally
superryu 2004-07-28
  • 打赏
  • 举报
回复
没有try是不能写finally的
flymanwlq 2004-07-28
  • 打赏
  • 举报
回复
没有try可以有finally么?
iorisiori 2004-07-28
  • 打赏
  • 举报
回复
finally
{
if(rs!=null)
rs.close();
if(ps!=null)
ps.close();
if(conn!=null)
conn.close();
}
flymanwlq 2004-07-28
  • 打赏
  • 举报
回复
但是我要抛出异常,就没有try了亚,当然也可以有try和catch,然后再在catch中再次抛出异常,最后搭配finally使用,但是有点别扭..
x97 2004-07-28
  • 打赏
  • 举报
回复
呵呵,没看清题目,不好意思。
x97 2004-07-28
  • 打赏
  • 举报
回复
放在finally里面就可以了,一定会被执行的。
我曾经在struts的Action中写过一个方法,在try里面就return了,可finally中的调试语句照样会执行。
finally很强吧,嘿嘿。
flymanwlq 2004-07-28
  • 打赏
  • 举报
回复
几种方法大好像都不大合适,我是说方法要讲所有的异常抛出,而不捕获!如何关闭连接
pleonheart 2004-07-27
  • 打赏
  • 举报
回复
Connection conn = null;
PreparedStatement psm = null;
ResultSet rs = null;
try {
//TODO fix me!
} catch (SQLException ex) {
//TODO handle me!
} finally {
try {
if (rs != null) {
rs.close();
}
if (psm != null) {
psm.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception x) {}
}
petertangh 2004-07-27
  • 打赏
  • 举报
回复
finally {
try {
rs.close();
conn.close();
}
catch (SQLException ex1) {
}
}
umbrella1984 2004-07-27
  • 打赏
  • 举报
回复
放在一定会被执行的地方就可以了。自己看着办。
registered 2004-07-27
  • 打赏
  • 举报
回复
try {
......
} catch(SQLException sple) {
conn.close();
throw sple;
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧