用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
我写的是 public static void main(String[] args) {
System.out.println(tryReturn());//直接输出tryReturn运行结果
}
public static int tryReturn() {
int count= 3;//定义一个计数器
try{
System.out.println(count);
return ++count; //由此判断
} finally{
System.out.println("finally已经被执行并且计数器是:"+(++count));
/*//return ++count;本来想在这也返回个值的,
但是如果在finally语句中包涵return则系统不
会跳回try块中但是这也侧面证明try中的return
是在finally语句之后执行*/
}
}
输出结果是 3
finally已经被执行并且计数器是:5
4
发现有趣的地方:当在finally块里面的输出语句中加个++count 时,我们会发现return确实是在finally之后返回值 但是return中的的count却比finally中的count的先自加 这时为什么呢?
|