finally至关于在return前插入finally的代码块(void的方法,系统会默认加上return;),可是其是临时独立的java
public class Test { public static void main(String[] args) { System.out.println(getValue()); } public static int getValue() { int i = 0; try { System.out.println("try block"); i=4; return i; } finally { System.out.println("finally block"); ++i; } } }
返回spa
try block finally block 4
如在finally里加入return,则提早返回了,也即返回finally里returncode
public class Test { public static void main(String[] args) { System.out.println(getValue()); } public static int getValue() { int i = 0; try { System.out.println("try block"); i=4; return i; } finally { System.out.println("finally block"); ++i; return i; } } }
返回get
try block finally block 5