A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

public class Test {
public static void main(String[] args) {
System.out .println(test ());
}
public static String test() {
try {
System.out .println("try block");
return test1 ();
}
finally {
System.out .println("finally block");
//return "finally";
}
}
public static String test1() {
System.out .println("return statement");
return "after return";
}
}

返回结果是?

3 个回复

倒序浏览
try block
return statement
finally block
after return
回复 使用道具 举报
本帖最后由 罗志辉 于 2015-10-17 12:42 编辑

try block  
return statement
finally block
after return

虚拟机执行主函数,主函数打印,调用test方法,读try,打印try block,读test1,打印return statement,将after return返回给try,test1执行完毕,try将after return返回给主函数
注意,此时主函数调用的test方法还没有执行完,执行finally,打印finally block,test执行完毕,主函数打印after return
楼主,你这个地方try,finally都是垃圾代码啊,毫无存在意义。打印和返回的都是固定的变量,在没有自定义异常的前提下,是不可能存在异常的,所以没有必要使用try finally


回复 使用道具 举报
try block
return statement
finally block
after return

eclipse的结果
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马