Java异常处理回顾:使用finally块

来源:互联网 发布:杜冷丁多少钱一只淘宝 编辑:程序博客网 时间:2024/06/01 10:02

先来看三个小例子:

public class FinallyFlowTest {public static boolean test0(){try{return true;}finally{return false;}}public static int test1(){int count = 0;try{return ++count;}finally{return count;}}public static void test2(){try{System.out.println("进入try块");System.exit(1);}finally{System.out.println("进入finally块");}}public static void main(String[] args) {//test0//打印是:false//初步猜想:try块中的return失效了System.out.println(FinallyFlowTest.test0());//test1//打印是:1//再次猜想:try块中的return失效了System.out.println(FinallyFlowTest.test1());//test2//打印是:进入try块//并没有进入finally块虚拟机就退出了FinallyFlowTest.test2();}}

结论1:

如果try块,finally块中都使用了return语句。

try块中的return执行后,方法不会立即结束(失效了),而会进入finally块。

在finally块遇到return语句,才会终止方法,返回最终结果。


结论2:

除非在try块中调用了退出虚拟机方法,否则finally块总会执行。

原创粉丝点击