return與finally的執行順序的影響(skycto JEEditor)

書寫人生發表於2019-09-15

對於 try 和 finally 至少一個語句塊包含 return 語句的情況:
finally 語句塊會執行
finally 沒有 return,finally 對 return 變數的重新賦值修改無效
try 和 finally 都包含return,return 值會以 finally 語句塊 return 值為準

程式碼

    public static void main(String[] args) {
            System.out.println(getString());
        }
        
        public static String getString() {
            String str = "A";
            try {
                str = "B";
                return str;
            } finally {
                System.out.println("finally change return string to C");
                str = "C";
    //            return str;
            }
        }

輸出

finally change return string to C
B
 

    public static void main(String[] args) {
            System.out.println(getString());
        }
        
        public static String getString() {
            String str = "A";
            try {
                str = "B";
                return str;
            } finally {
                System.out.println("finally change return string to C");
                str = "C";
                return str;
            }
        }

輸出

finally change return string to C
C
————————————————
版權宣告:本文為CSDN博主「ConstXiong」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/meism5/article/details/89237460

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947338/viewspace-2657053/,如需轉載,請註明出處,否則將追究法律責任。

相關文章