CoreJava_不要在finally块中使用return关键字
赶紧动手,写了一个DEMO,恍然大悟:
public class TestFinally { public int getAddResult(int x,int y){ try{ System.out.println("before return in try section."); return x+y; }finally{ System.out.println("before return in finally section."); return x*y; } } public static void main(String[] args) { System.out.println(new TestFinally().getAddResult(10, 20)); } }上面程序的返回结果如下:
before return in try section.
before return in finally section.
200
这才恍然大悟,原来Java的实现机制是在调用try代码块的return之前就会去执行finally里面的代码,这样finally的return就会结束当前的方法,返回一个错误的值,最好的实践还是,只有少量的资源需要释放的时候,才去使用finally,不要一股脑的扔到finally里面去处理,其他就扔给Java的垃圾回收机制处理好了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。