如果我有try ... catch一个内部的块while循环,并有#SA break内catch,不执行程序退出循环?
如:
while (!finished) {
try {
doStuff();
} catch (Exception e) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
doStuff()中抛出的异常会退出循环吗?
fmu*_*car 57
是的,它会的.最简单的方法是尝试一下.
public static void main(String[] args) {
int i=0;
while (i<10) {
System.out.println(i);
try {
if(i ==7){
throw new Exception();
}
i++;
} catch (Exception e) {
break;
}
}
System.out.println("out of loop");
}
Run Code Online (Sandbox Code Playgroud)
它会打印出来
0
1
2
3
4
5
6
7
out of loop
Run Code Online (Sandbox Code Playgroud)
输出从0开始.
Nat*_*yan 26
一个break语句总是适用于最内侧while,do或者switch,不管其他插入语句.但是,有一种情况break不会导致循环退出:
while (!finished) {
try {
doStuff();
} catch (Exception e) {
break;
} finally {
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,突然完成finally的原因是突然完成的try,并且突然完成了catch丢失.
| 归档时间: |
|
| 查看次数: |
36393 次 |
| 最近记录: |