黑马程序员技术交流社区
标题:
先执行try中的return还是先执行finally
[打印本页]
作者:
hnyzhlq
时间:
2015-7-11 16:47
标题:
先执行try中的return还是先执行finally
/**
* 第八题:用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行finally?
*/
class Test8
{
public static void main(String[] args)
{
System.out.println("return打印:"+tryTest());
/* 结果分析说明:
* 运行会打印两行字符串,因为一个是main方法打印,一个是tryTest打印,
* 所以两行字符串打印的先后顺序不做参考。
*
* 打印可能性:
* 1、如果"return打印"为0,"finally打印"为1;
* 表示return指令在i++之前运行,所以是先执行try中的return再执行finally
* 2、如果"return打印"为1,"finally打印"为1;
* 表示i++在return指令之前运行,所以是先执行finally再执行try中的return
*
* 结论:
* 经过运行发现,打印结果为:
* finally打印:1
* return打印:0
* 所以,是先先执行try中的return再执行finally
*/
}
public static int tryTest()
{
int i=0;
try
{
return i;
}
finally
{
i++;
System.out.println("finally打印:"+i);
}
}
}
复制代码
作者:
孟卫严
时间:
2015-7-11 16:57
这个应该不纠结啊,
try里面的语句先执行,然后执行finally里的语句
作者:
hnyzhlq
时间:
2015-7-11 16:59
孟卫严 发表于 2015-7-11 16:57
这个应该不纠结啊,
try里面的语句先执行,然后执行finally里的语句
知道的话是不纠结,只是用代码证明一次
作者:
何鹏程
时间:
2015-7-11 18:17
看这个事先执行return.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2