黑马程序员技术交流社区
标题:
返回值的问题
[打印本页]
作者:
马蒙蒙
时间:
2011-7-29 16:15
标题:
返回值的问题
一段代码:
public class smallT
{
public static void main(String args[])
{
smallT t = new smallT();
int b = t.get();
System.out.println(b);
}
public int get()
{
try
{
return 1 ;
}
finally
{
return 2 ;
}
}
}
为什么返回值是2呢?请教高手
作者:
匿名
时间:
2011-7-29 17:29
不论有没有异常产生,finally块,都会在方法return之前被执行一次。
我个人认为:在finally中的返回值,覆盖了try中的返回值。
作者:
匿名
时间:
2011-7-29 17:40
看情况的吧,反正finally肯定会执行,但是1也有可能返回
作者:
匿名
时间:
2011-7-29 17:50
记住一点,除非是断电或其他外部原因或在try中用了System .exit(0),否则finally的语句都会被执行的
package com.heima;
public class SmallT {
public static void main(String args[])
{
SmallT t = new SmallT();
int b = t.get();
System.out.println(b);
}
@SuppressWarnings("finally")
public int get()
{
try
{
//return 1 ;
[color=Red]System.exit(0);[/color] }
finally
{
return 2 ;
}
}
}
作者:
匿名
时间:
2011-7-29 17:57
try中没有异常。所以不会返回1.而final是必须执行的,所以结果是2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2