大家觉得的呢?
解决方案 »
- jsp中的参数传给struts2中action的方法
- 一个web问题
- BigDecimal的setScale(int i,int j)
- 请问高手一个关于WebService缓存连接的问题
- xml中的一个问题
- 请大侠推荐一些EJB的学习资料
- 一个struts的问题????
- 第一个简单的ejb为什么挂了?JBuilder7&Weblogic7整和开发培训手册的例子~ft~~~~~偶要疯了~~~~~
- ejb 菜鸟请进....................... ejb 之弱问题
- 求指点
- 在线等!!!JCreator4.5如何编译?
- 求助|WebSphere+spring+struts|spring加载bean出错
1L说的是一种情况 所以还是要跟catch配合使用的看到书上人推荐的写法。。
try{
try{
}finally{
}
}catch(Exception e){
....
}
俺看到的时候就被雷到了 这样做就避免了在finally{}内出异常导致代码有点不简洁的小问题了 不过这样做据说在finally里出异常的话 就会丢失原来的异常 大概吧5L大亮!
有这种写法,常见于 JDBC 的代码中,但是这样的写法是有问题的!try {
try {
String sql = ...;
con = ...;
ps = con.preparedStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
...
}
} finally {
if(rs != null) rs.close();
if(ps != null) ps.close();
if(con != null) con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}这是双重 try 的格式,对于上面的这段代码来说,这样的格式是有问题,不知道你能不能看出来?
其实你写的那个方法应该在该问题的范围外 2L说的没实验过 可以说出异常的话finally会执行 但是出错误无法执行finally?
try {
return true;
} finally {
return false;
}
}
可以试下这个方法,finally是一定会执行的(断电,强制关闭除外)
不妨看一下这个http://www.newsmth.net/pc/pccon.php?id=10003032&nid=408338(详细讲解哦)
现在发生的异常是java.lang.StackOverflowError。
发生异常时,自动调用了finally,所以打印出了“finally”。可以这么修改代码,就可以看到异常了。class A {
public void foo() {
try {
System.out.println("try");
foo();
} catch (OutOfMemoryError e) {
System.out.println("catch");
foo();
} finally {
System.out.println("finally"); }
}
}输出结果:
finally
finally
finally
Exception in thread "main" java.lang.StackOverflowError
at sun.nio.cs.ext.DoubleByteEncoder.encodeArrayLoop(Unknown Source)
at sun.nio.cs.ext.DoubleByteEncoder.encodeLoop(Unknown Source)
at java.nio.charset.CharsetEncoder.encode(Unknown Source)