异常处理中的一点困惑,请指点! 本帖最后由 apollo_liiu 于 2013-01-23 17:08:11 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为你在finally快return了:finally{ System.out.println("finally ..."); return ret;} 我猜是这个原因 有了finally估计是finally来扑捉了,你可以再没有返回值的finally语句中加个return ;这样编译器也不会强制要求我们抛异常 坐等楼下大神解释 为什么有了return就不用"捕获或声明",请hzw2312朋友详细说明下,谢谢了。 不是因为这个,是因为永远也不会有IOException,所有能编译 抛出了异常,就不执行别的语句,走完finally后就会返回异常信息了。然而finally{return;}又告诉程序不返回异常信息了、直接返回ret!这是一个逻辑错误!!! debug调试了一下,methoda中,在finally块执行完后会判断抛出的异常在大括号结束后会显示suspended exceptionmethodb中,finally块中直接return返回值,强制退出该方法的执行,返回到main方法,没有执行到finally块的后括号}就已经结束 log4j 输出中文 java异常处理问题 为什么编写的Java小程序,菜单无法显示出来 请教一个问题 简单的字符串分解问题 jTable 的一个问题 !! Applet的“超连接”!? 请教时间的转换问题 下载的问题,急急急急急急急急!!!在线等待! 请大虾帮忙 Integer的疑问 log4j每天产生一个日志文件
因为你在finally快return了:
finally{
System.out.println("finally ...");
return ret;
}
抛出了异常,就不执行别的语句,走完finally后就会返回异常信息了。然而finally{return;}又告诉程序不返回异常信息了、直接返回ret!
这是一个逻辑错误!!!
methodb中,finally块中直接return返回值,强制退出该方法的执行,返回到main方法,没有执行到finally块的后括号}就已经结束