JAVA中return與finally的先後關係
阿新 • • 發佈:2018-12-15
1、finally中修改了值後,會不會影響return的值?
具體例子:
public static int returnValue2() { int i = 1; try{ return i; } finally { System.out.println("執行finally"); i = 2; } } public static void main(String[] args) { System.out.println(returnValue2()); }
結果輸出:
執行finally
1
結論:
1)不管有木有return值,finally塊中程式碼都會執行;
2)return值不會因為finally裡面的修改而改變,
2、如果finally中也return值,那麼以哪個return值為準?
具體例子:
public static int returnValue() { try{ return 1; } finally { return 2; } } public static void main(String[] args) { System.out.println(returnValue()); }
結果輸出:
2
結論:如果finally中也return值,以finally中的return值為準