package z;
public class Test4_5 {
static void Proc(int sel) {
try {
if (sel != 0) {
System.out.println("no Exception ");
//return;
} else {
int j = 4 / sel;
}
}catch (ArithmeticException e) {
System.out.println("Catch ");
} catch (Exception e) {
System.out.println("Will not be executed");
} finally {
System.out.println("finally");
}
}
public static void main(String args[]) {
Proc(0);
Proc(2);
}
}
需要首先注意的几点:
1) try catch finally中的finally不管在什么情况之下都会执行,执行的时间是在程序return 之前.
2) Java 编译器不允许有显示的执行不到的语句块,比如return之后就不可能再有别的语句块(分支不属于此列)