Java循環中try...finally...遇到continue


一段很簡單的代碼,先自己在大腦中給出結果:

for (int i = 0; i < 5; i++) {
    System.out.println("enter: i=" + i);
    try {
        if (i % 2 == 0)
            continue;
    } finally {
        System.out.println("leave: i=" + i);
    }
}

運行結果:

enter: i=0
leave: i=0
enter: i=1
leave: i=1
enter: i=2
leave: i=2
enter: i=3
leave: i=3
enter: i=4
leave: i=4
enter: i=5
leave: i=5

為什么會提出這個問題呢?是因為在review代碼時,finally中有比較重要的業務邏輯,特別注意了下這個代碼結構,雖然知道finally是一定會會執行的,但是又糾結於continue會忽略循環中后面的代碼,所以就寫了上面的測試程序。

結論

即使循環中的try...finally...中有continue,finally始終都是會執行的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM