黑马程序员技术交流社区

标题: 语句中有一个return 那么紧跟在这个try后的finally{}执行顺序。 [打印本页]

作者: 黄嵘才    时间: 2013-2-23 21:47
标题: 语句中有一个return 那么紧跟在这个try后的finally{}执行顺序。

会,而且先执行finally,在执行try?
—————————————————–
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str=showResult();
System.out.println(str);
}

public static String showResult(){
try {
System.out.println(“1——–”);
return “hello world”;
} catch (Exception e) {
return “failure”;
}finally{
System.out.println(“2——-”);
}
}
}
——————————————————
结果是:
1——–
2——-
hello world






作者: 罗海云    时间: 2013-2-23 21:51
执行顺序:
try{}里先执行, 遇到return语句就跳到finally.,执行完后跳回try {}return语句返回,程序出现异常就停掉.
(1)try{}
(2)finally{}
作者: 吃阁子的猫    时间: 2013-8-17 20:02
本帖最后由 吃阁子的猫 于 2013-8-17 20:04 编辑

1,main方法进栈,调用showResult()
2,执行try输出语句,执行return,这是并未输出,存到一个指定区域
3,执行finally输出语句
4,所有方法执行完,方法弹栈,这是才输出return中的语句





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2