Open yankj12 opened 6 years ago
参考自: 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始终都是会执行的。
参考自: Java循环中try...finally...遇到continue
一段很简单的代码,先自己在大脑中给出结果:
运行结果:
为什么会提出这个问题呢?是因为在review代码时,finally中有比较重要的业务逻辑,特别注意了下这个代码结构,虽然知道finally是一定会会执行的,但是又纠结于continue会忽略循环中后面的代码,所以就写了上面的测试程序。
结论
即使循环中的try...finally...中有continue,finally始终都是会执行的。