Java异常问题!

wtjd 2005-07-10 01:24:27
假设有如下两种代码段


java.sql.Connection con = DriverManager.getConnection("省略");//取得数据库连接
代码段一:
try{
......
}catch(SQLException e){
e.printStackTrace();
}finally{
con.close();//关闭数据库连接
}

代码段二
try{
......
}catch(SQLException e){
e.printStackTrace();
}

con.close();//关闭数据库连接


我的问题如下:
1,上面两不同的代码段就是一个有finally,一个没有finally,试问在try中发生SQLException异常后,代码段二的数据库连接是否会关闭?为什么?

2,当try中发生异常后,并且找到catch处理块,当catch处理块中的代码执行完后,然后程序会继续执行catch后面的代码吗?





...全文
109 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
interhanchi 2005-07-19
  • 打赏
  • 举报
回复
同意楼上的 !
kingfish 2005-07-19
  • 打赏
  • 举报
回复
不是,只要catch了异常(并且catch里没有return),catch后代码就会执行。
wtjd 2005-07-19
  • 打赏
  • 举报
回复
是这样的吗?
wtjd 2005-07-19
  • 打赏
  • 举报
回复
catch捕捉到运行时异常后,程序是不是会在执行catch代码块后,程序中断,而如果捕捉到是非运行时异常,则程序会执行catch块里面的代码,进而继续执行catch后面的代码?
wtjd 2005-07-19
  • 打赏
  • 举报
回复
http://wt:81/mynews
kingfish 2005-07-10
  • 打赏
  • 举报
回复
if(con!=null) con.close();

try{
//A
}
catch(){
//B
}
finally{
//C //一定会执行
}
//D //如果C里面有异常或者有return, D不会执行; 否则D会执行

lmjzw 2005-07-10
  • 打赏
  • 举报
回复
如果在调试状态下!代码二是不会关闭数据库的,因为在调试的时候,一旦发生异常,将终止程序的执行。数据库不会关闭,而在执行状态下,数据库会得到关闭!
同理,只有代码一CATHCH语句后在的语句一定会执行,而代码二后面的语句只有在执行状态下,会得到执行!
jzg1234 2005-07-10
  • 打赏
  • 举报
回复
我再问一个,如果在catch中处理完了异常
如输入除数为0,那么怎么让他返回继续执行发生异常的下一个语句啊????

62,614

社区成员

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

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