一段很簡單的代碼,先本身在大腦中給出結果:測試
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會忽略循環中後面的代碼,因此就寫了上面的測試程序。code
即便循環中的try...finally...中有continue,finally始終都是會執行的。循環