循环的try catch中使用continue、break。
结论:1. 循环内catch代码端中的的continue、break可以正常生效。
2. 无论是continue还是break,退出循环前都会执行finally中的代码
代码:
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println("-----start" + i);
try {
test(i);
} catch (Exception e) {
System.out.println(e.getMessage());
// 情形1:无continue、break
// 情形2:continue
continue;
// 情形3:break
break;
}
/* 情形4: finally
finally {
System.out.println("finally");
} */
System.out.println("-----end" + i);
}
}
static void test(int j) {
if (j == 1) {
throw new RuntimeException("发生异常");
}
System.out.println("正常执行" + j);
}
情形1(无continue、break)结果:
三次循环均能全部执行到结尾。
情形2(continue)结果:
发生异常的那次循环在执行continue就跳出了本次循环。
情形3(break)结果:
发生异常的那次循环在执行break之后就中断了整个for循环。
finally 代码段中的执行情况
无论是continue、还是break。在退出本次循环之前,都执行了finally代码段中的代码