java try return 和finally return 执行顺序证明

来源:互联网 发布:淘宝食品流通证 编辑:程序博客网 时间:2024/05/17 00:58
package demo;public class FinallyReturnDemo {    static int x = 0;    public static void main(String[] args) {        System.out.println("demo1(): " + demo1());// demo1(): 8        // 正常执行try的return先执行,再执行finally的return并返回        // 重置        x = 0;        System.out.println("demo2(): " + demo2());// demo2(): 3        // 这个比较好懂,不解析了    }    // 正常执行,这个好多人搞混    public static int demo1() {        try {            return x = x + 5;        } catch (Exception e) {        } finally {            System.out.println("demo1 finally");            return x = x + 3;        }    }    // try代码块捕获异常,这个比较好理解    public static int demo2() {        try {            System.out.println(1 / 0);            return x = x + 5;        } catch (Exception e) {            System.out.println("demo2 catch");            return x = x + 2;        } finally {            System.out.println("demo2 finally");            return x = x + 3;        }    }}//demo1 finally//demo1(): 8//demo2 catch//demo2 finally//demo2(): 5
原创粉丝点击