finally 前面和后面try catch 有什么區別?

lilinew 2009-07-29 04:21:54
try{
//1.加载驱动
。。。。。。。。
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch(Exception e){
e.printStackTrace();
}

finally{ ----------

try{
con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}

這里請問finally 前面和后面try catch 有什么區別?
...全文
204 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linux校园社区 2009-07-29
  • 打赏
  • 举报
回复
1楼一语中的。
izard999 2009-07-29
  • 打赏
  • 举报
回复
1楼正解
zhuzhusany 2009-07-29
  • 打赏
  • 举报
回复
不是很明白楼主的意思,但是你的程序捕获了异常,但是没有在将异常throw出去,程序是不会终止的
后面的sql是可以执行的,但是connection对象可能是空的,后面的DB操作也是会出异常的
等待逆袭 2009-07-29
  • 打赏
  • 举报
回复
顶一楼
lilinew 2009-07-29
  • 打赏
  • 举报
回复
java異常錯誤如下:
stange error:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1046)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
at com.mysql.jdbc.ConnectionImpl.execSQL(Connection
lilinew 2009-07-29
  • 打赏
  • 举报
回复
我詳細說一下這個問題是如何來的,
數據庫發生死鎖,程序里 while(rs.next()){
不能得到數據 ,長時間,這樣發生錯誤 , 按照道理他因該到
try{
//1.加载驱动
。。。。。。。。
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch(Exception e){
e.printStackTrace();
}
請問我現在還能夠操作另外1個空表(這個表保證沒有人訪問的),之后執行這個sql嗎?? 在finally后
JavaChenYang 2009-07-29
  • 打赏
  • 举报
回复
前面的catch处理操作数据库时抛出的异常,后面的catch处理关闭数据库连接时出的异常。
weimingguo123 2009-07-29
  • 打赏
  • 举报
回复
1楼说的对
JavaChenYang 2009-07-29
  • 打赏
  • 举报
回复
半闭数据库连接时会抛异常,需要你捕获进行处理
全职幽默 2009-07-29
  • 打赏
  • 举报
回复
1楼正解。
zhuzhusany 2009-07-29
  • 打赏
  • 举报
回复
关闭也可能有异常的啊,所以也需要捕获

62,621

社区成员

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

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