黑马程序员技术交流社区
标题:
让我困惑的一段代码,求助
[打印本页]
作者:
qmlovewhr
时间:
2013-7-6 16:52
标题:
让我困惑的一段代码,求助
本帖最后由 赵海洋 于 2013-7-6 18:27 编辑
public class smallT
{
public static void main(String[] args)
{
smallT t=new smallT();
int b=t.get();
System.out.println(b);
}
public int get()
{
try
{
return 2;
}
catch (Exception e)
{
return 3;
}
finally
{
return 4;
}
}
}
我记得学习的时候说有返回值的方法,执行完return语句后就会停止了,另一方面我也知道在try.....catch语句中finally也是
一定要执行的,所以我试了代码运行,结果输出为:4.但是我有些不解,为什么会是这样一个结果,请高手帮忙解释下。
作者:
denghui1010
时间:
2013-7-6 17:09
有finally的时候,finally里面有return,就是这个return管用,没有return,就是外面的retrun管用
作者:
蚂蚁搬家
时间:
2013-7-6 17:28
finally语句中的代码是在任何情况下都会执行的,所以在try中遇到return时,程序先不中断,而是先执行finally中的语句,在finally中有return,程序就直接停止了,不再去执行try中的return
作者:
kaka小明
时间:
2013-7-6 17:37
第一个return是将函数的局部参数压栈,fianlly的return也将参数压栈,最后返回,参数出栈,调用者获得第二个参数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2