public class finallyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println(1);
return ;
} catch (Exception e) {
// TODO: handle exception
}
finally{
System.out.println(2);
}
System.out.println(3);
}
}
return 討論爲何去執行過finally再去執行return呢,java機制中具體怎麼工做的,爲何finally具備最高的優先級呢,java是怎麼樣保證finally具備最高優先級的
可是程序中有finally就必定會執行嗎?答案是否認的由於只有與 finally 相對應的 try 語句塊獲得執行的狀況下,finally 語句塊纔會執行。若是在try以前拋出異常或return則不會執行finallyjava
可是在執行try時,若是try中有return程序又怎麼會不是return執行的呢,而是在return以前先去執行finally呢?spa