黑马程序员技术交流社区
标题:
基础测试题-try语句块中有return,finally如何执行
[打印本页]
作者:
一只特立独行的猪
时间:
2014-6-29 17:07
标题:
基础测试题-try语句块中有return,finally如何执行
本帖最后由 钱维莹 于 2014-6-30 07:53 编辑
package com.itheima;
public class Test7 {
/**
* 7、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
* @author QWY
*/
static String str = "";
public static void main(String[] args) {
String s = test();
System.out.println("s = "+s);
System.out.println("str = "+str);
}
// @SuppressWarnings("finally")
public static String test()
{
try
{
str = "try";
return str;
}
finally
{
str = "finally";
// return str;
}
}
}
复制代码
题目: 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?上面是我写的程序,大家看看给点建议哈
程序运行结果是输出 s = try str = finally。
说明当try中有return语句时,会在返回str(此时str == “try”)之前执行finally语句块(此时str == "finally",但返回的str的值仍然是"try")。
把代码中的注释去掉,即在finally中加上return语句,结果是输出 s = finally str = finally。
说明当finally语句块中有return语句时,将直接返回str的值而不执行try语句块中的return。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2