首先说明一点,finally{ }里面的code一定会执行 ,至于是在return前执行还是在return后执行(个人认为是{}代码执行完之后并且在return执行之前),具体需要分情况:
1.若try{}中没有异常,则try{}中语句执行到return前一句,然后执行fianlly{}中的语句,最后回头执行try{}中的return语句。
public class Test { public static int getA() { int a = 5; try { a = 10; System.out.println("try a = " + a); return a; } catch (Exception e) { a = 15; System.out.println("catch a = " + a); return a; } finally { a = 20; System.out.println("finally a =" + a); } } public static void main(String[] args) { int a = getA(); System.out.println("result a =" + a); } }
运行结果:
tr