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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© likeermei 中级黑马   /  2013-11-22 11:52  /  978 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 个回复

倒序浏览
结果是2啊
调用get(),函数里有个try和finally,try块中的return语句执行完后,finally块中的语句是一定要执行的,所以return 2,结果为2
回复 使用道具 举报
结果绝对是2,本来try中放的是被检测的代码,结果返回1,但是finally中的代码在最后一定会被执行,返回2将前面的1覆盖了,所以打印结果是2!      
在finally块中return或者throw都是不推荐的,这样会导致try和catch中代码的返回值无效。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马