黑马程序员技术交流社区
标题:
java中try,finally中含有return的执行情况
[打印本页]
作者:
大恶魔先森~
时间:
2014-4-29 22:45
标题:
java中try,finally中含有return的执行情况
第一种情况:try中有return语句,而finally中没有
public class TestTry
{
static String s="";
public static void main(String args[])
{
s = test1();
System.out.println("8 "+s);
}
public static String test1()
{
try
{
System.out.println("try.....");
return s = "a";
}
finally{
s="b";
System.out.println("17 "+s);
}
}
}
运行结果为:try.....
17 b
8 a
复制代码
第二种情况:try中没有return语句,finally中有return语句
public class TestTry
{
static String s="";
public static void main(String args[])
{
s = test1();
System.out.println("8 "+s);
}
public static String test1()
{
try
{
System.out.println("try.....");
}
finally
{
s="b";
System.out.println("17 "+s);
}
}
}
运行结果为:try.....
17
8 b
复制代码
第三种情况:try和finally中都有return语句
public class TestTry
{
static String s="";
public static void main(String args[])
{
s = test1();
System.out.println("8 "+s);
}
public static String test1()
{
try
{
System.out.println("try.....");
return s = "a";
}
finally
{
return s="b";
}
}
}
运行结果为:try.....
8 b
复制代码
总结:无论try中有没有return语句,finally语句都一定要执行。当try中有return语句时,finally中没有return时,那么在执行try中return之前先执行finally语句。当finally有return语句时,无论try中有没有return,将会直接返回,不再去执行try中的return语句。
作者:
孟凡超
时间:
2014-4-30 10:29
3q。。。。。。
作者:
._抬眉﹏
时间:
2014-4-30 10:42
不管return在哪里 finally总是会执行的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2