+ -
当前位置:首页 → 问答吧 → 很简单的try catch finally代码,但返回值搞不懂

很简单的try catch finally代码,但返回值搞不懂

时间:2011-08-24

来源:互联网

public class Test {
public static void main(String[] args) {
int b = getValue();
System.out.println(b);

}

private static int getValue(){
int a =0;
try{
a = 10;
return a;
}catch (Exception ex){

}finally{
a=100;
}
return a;
}
}

输出的返回值b是什么?
为什么呢?
没想明白。

作者: tianshi1017   发布时间: 2011-08-24

100

作者: jianglang_a   发布时间: 2011-08-24

finally是一定会执行的在返回前

作者: jianglang_a   发布时间: 2011-08-24

自己了解一下try catch finally的执行顺序吧。
原则是先执行return 再finally 可以自己debug一下啊

作者: heweiAndPippo   发布时间: 2011-08-24

当执行到getValue()函数的时候,a=0,接下来执行try里面的语句,a=10,return a,这时a==10,因为没有异常,所以不执行catch语句,至于为什么没执行finally是因为有return a这句话,已经跳出函数了,所以最后等于10.OK?

作者: yangshuai19880401   发布时间: 2011-08-24

finally是一定会执行的,只不过上面的try{}里已经return a,所以之后对a的修改对于getValue()的返回值都不会有影响。

作者: liuzhengkang   发布时间: 2011-08-24

热门下载

更多