1. 程式人生 > >Java - 若try中有return語句,finally會執行嗎?在return之前還是之後呢?

Java - 若try中有return語句,finally會執行嗎?在return之前還是之後呢?

內存空間 rgs -- 取消 turn all urn stat fin

會執行,在方法return動作之前,return語句執行之後,若finally中再有return語句,則此方法以finally的return作為最終返回,若finally中無return語句,則此方法以try的return作為最終返回。 P:方法的返回值以最後一個執行return語句的運算結果為準,返回值一旦確定,不隨之後執行的代碼影響。 測試程序: public static void main(String[] args) { System.out.println(test()); System.out.println("finish.."); } private static int test() { int b = 20; try { System.out.println("try block"); return b += 80; } finally { System.out.println("finally block"); if (b > 20) { System.out.println("b = " + b); } // 若此行取消註釋,參見輸入2
。 // return 1; // 若此行取消註釋,參見輸出3。 // b --; // 方法的返回值在finally之前已經定了(可以理解為每個方法都有一個用來保存return值的內存空間),在此再修改b並不會影響返回值。 } } 輸出: try block finally block b = 100 100 finish.. 輸出2: try block finally block b = 100 1 finish.. 輸出3: try block finally block b = 100 100 finish..

Java - 若try中有return語句,finally會執行嗎?在return之前還是之後呢?