【Java】從一段程序看關鍵字finally

在網上看到一段代碼java

public class Test {
    public static int tt() {
        int b = 23;
        try {
            System.out.println("yes");
            return b += 88;
        } catch (Exception e) {
            System.out.println("error: " + e);
        } finally {
            if (b > 25) {
                System.out.println("b>25: " + b);
            }
            System.out.println("finally");
        }
        return b;
    }

    public static void main(String[] args) {
        System.out.print("main method: " + tt());
    }
}

運行結果:app

yes
b>25: 111
finally
main method: 111函數

到這裏,有不少人會感到納悶:return以後函數不就結束了嗎?怎麼仍是執行finally域內的語句?爲了說明這個問題,咱們先談談finally關鍵字。code

finally的做用

關鍵字finally是try的關鍵字,通常與try成對出現,意味着不管try塊是怎麼退出的,finally子句中的代碼老是會被執行的。所以,finally被用來執行不管是否有異常老是要運行的事件。事件

通常狀況下,return表示了調用方法的結束,但finally是個例外。若是用System.exit()退出程序的話,固然finally就不會執行了。get

參考資料

[1] Does finally always execute in Java?it

相關文章
相關標籤/搜索