1. 早抛出,晚捕获.
2. 如果 finally 语句中有 return 语句,则 finally 中的 return 语句将会覆盖 try 中的 return 语句,如以下代码,将会输出 1。如果在 finally 语句里有抛出异常,那么此异常将会覆盖 try 块中抛出的异常。
01 |
public class FinallyReturnTest |
02 |
public static void main(String[] |
03 |
System.out.println(testFinallyReturn( 1 )); |
04 |
} |
05 |
06 |
public static int testFinallyReturn( int n) |
07 |
try { |
08 |
// |
09 |
return n+n; |
10 |
} finally { |
11 |
return n; |
12 |
} |