catch如果再抛出异常那怎么办??忽然有这种想法, 那换个思维,catch抛出异常还有finally处理。那finally抛出异常不是天下大乱了?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 finally抛出异常可以再去捕获啊 finally抛出异常很正常. 把它当成普通代码块理解就好了. finally抛出异常很正常. 把它当成普通代码块理解就好了. finally中也可以写try……catch代码的。最多在最后的catch中,异常类写做Exception,就能把所有的异常都抓住了。 finally不会抛出异常的。你可以在finally中把try-catch中的不会再用到的临时变量清空。因为gc()有时候不会及时清理垃圾数据,所以有的时候还是要手写。 finally外再加个catch,捕获fianlly抛出的异常 你也可以在finally里用try catch啊;另外,纠正一下,在catch里的异常可不是在finally里面处理的,finally里面只是用力做一些收尾工作的,即不论你的try块里是不是有异常,甚至你在try catch里有return语句,finally里的语句也是会执行的; 这种情况很多的! 不过 一般都设计成了 catch 语句块里面是 把再抛出的异常处理掉...... 比如 connect.close() finally 不会出现异常的吧? catch抛出异常?这什么话啊,try才是抛出异常。。catch是捕获异常好不?不会抛出的 他的意思是catch了以后做出处理又出了异常怎么办吧,那只能再catch了...直到catch完为止~ finally要是抛出异常,而没有捕获异常的处理语句就麻烦了!这也是异常再抛出问题。呵呵,楼主想的还真多 JAVA核心技术里面说了.....哈哈,这本书真不错,居然什么都说了.........楼主去看看吧 可以嵌套的阿!只要有异常你就可以捕获,finally也是一样的哦! finally语句可以继续try--catchJDBC里面经常用的!很正常啊 try catch try catch 要理解哦你抛,我就catch 很正常啊,JDBC 的 Connection, PreparedStatement, ResultSet,以及 IO 中的类在finally 块中 close() 的话就会产生异常。上次见到一个这样的代码结构,双 try 格式的呵呵,不得不佩服一下。Connection con = null;PreparedStatement ps = null;ResultSet rs = null;int count = 0;try { try { con = ConnectionFactory.getConnection(); Sring sql = "SELECT count(id) AS count FROM chinacity WHERE name LIKE ?"; ps.setString(1, "%" + name + "%"); rs = ps.executeQuery(); while(rs.next()) { count = rs.getInt("count"); } } finally { if(rs != null) rs.close(); if(ps != null) ps.close(); if(con != null) con.close(); }} catch (SQLException e) { e.printStackTrace();} 一样的catch,或者在声明方法时向外throws ;不过,在finally中进行可能会抛异常的操作或者人为的向外抛异常,都是完全没有意义的;你想,在马拉松终点休息的地方,你还有必要继续设置可能导致摔跤的路障吗? 你还想让finally做什么?看看finally主要是为了做什么。 抛到最后只有给操作系统,然后给一个窗口,“OX00000为XXX,程序关闭!”搞笑呢, java.lang.UnsatisfiedLinkError The specified procedure could not be found 大文本存txt好呢还是数据库好? 关于Swing的JPanel问题 关于throw、throws的用法疑惑 讨论一个专业的问题 关于对像repaint 关于线程对象的垃圾回收 各位仁兄,有没有用java快速访问excel的方法 java高手请进! 请问Netty适合做HTTP服务容器吗? 关于以后学习的一些疑问!望大家帮下忙! java String 插入Oracle 超长
把它当成普通代码块理解就好了.
把它当成普通代码块理解就好了.
最多在最后的catch中,异常类写做Exception,就能把所有的异常都抓住了。
你可以在finally中把try-catch中的不会再用到的临时变量清空。因为gc()有时候不会及时清理垃圾数据,所以有的时候还是要手写。
另外,纠正一下,在catch里的异常可不是在finally里面处理的,finally里面只是用力做一些收尾工作的,即不论你的try块里是不是有异常,甚至你在try catch里有return语句,finally里的语句也是会执行的;
那只能再catch了...直到catch完为止~
这也是异常再抛出问题。呵呵,楼主想的还真多
JDBC里面经常用的!很正常啊
你抛,我就catch
finally 块中 close() 的话就会产生异常。上次见到一个这样的代码结构,双 try 格式的呵呵,不得不佩服一下。Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int count = 0;try {
try {
con = ConnectionFactory.getConnection();
Sring sql = "SELECT count(id) AS count FROM chinacity WHERE name LIKE ?";
ps.setString(1, "%" + name + "%");
rs = ps.executeQuery();
while(rs.next()) {
count = rs.getInt("count");
}
} finally {
if(rs != null) rs.close();
if(ps != null) ps.close();
if(con != null) con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
不过,在finally中进行可能会抛异常的操作或者人为的向外抛异常,都是完全没有意义的;
你想,在马拉松终点休息的地方,你还有必要继续设置可能导致摔跤的路障吗?
看看finally主要是为了做什么。