for (int i = 0; i < 3; i++) {
int retry = i + 1;
try {
// 更新数据
int num = service.updatedata();
System.out.println("invoke execute break....................");
if(num != 1){
System.out.println("invoke if break....................");
} else {
System.out.println("invoke else break....................");
break;
}
} catch (Exception e) {
// 出现异常,则重试3次
e.printStackTrace();
} finally {
// 不管正确更新还是失败
System.out.println("invoke finally....................");
}
}
理论来讲break之后会跳出for循环,但实际的执行效果是执行break之前会先执行finally中的代码!!!