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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jlnu_wl 中级黑马   /  2015-7-1 10:51  /  632 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class SmallT {

        public static void main(String[] args) {
                SmallT t=new SmallT();
                int b=t.get();
                System.out.println(b);

        }

        private int get() {
                try{
                        return 1;
                }finally{
                        return 2;
                }
        }

}


11 个回复

倒序浏览
还真没见过,希望有经验的大神前来解答
回复 使用道具 举报
相当于是一个赋值的过程,第一次,将1赋值给了t.get(),第二次,将2赋值给t.get()
回复 使用道具 举报
finally里的语句一定会运行。
return 1后。
finally里的return 2还是会运行。
所以get()方法最终结果还是return 2
回复 使用道具 举报
结果为2  这么简单 ,逗儿呢,敲一遍代码就是知道了
回复 使用道具 举报
又涨见识了,我猜结果是2
回复 使用道具 举报
孙嘉亮 发表于 2015-7-1 11:50
finally里的语句一定会运行。
return 1后。
finally里的return 2还是会运行。

顶一个
回复 使用道具 举报
前后矛盾,因为try已经进行了return 就表示该外函数结果,但是try-catch-finally语法上一定会运行finally,所以个人认为你的问题很"keng”,*_*
回复 使用道具 举报
高耀洋 发表于 2015-7-1 11:54
结果为2  这么简单 ,逗儿呢,敲一遍代码就是知道了

敲一遍我也知道答案,主要是想知道try,finally的运行机制
回复 使用道具 举报
涨见识了
回复 使用道具 举报
不管抛不抛出异常,finally内的代码是一定要执行的的。结果是2
回复 使用道具 举报
考的知识点是无聊try块中的异常是否抛出,finally代码块一定会执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马