黑马程序员技术交流社区

标题: 运行结果为什么啊 [打印本页]

作者: jlnu_wl    时间: 2015-7-1 10:51
标题: 运行结果为什么啊
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;
                }
        }

}



作者: 凶狠搞Android    时间: 2015-7-1 11:03
还真没见过,希望有经验的大神前来解答
作者: GiveUp    时间: 2015-7-1 11:47
相当于是一个赋值的过程,第一次,将1赋值给了t.get(),第二次,将2赋值给t.get()
作者: 孙嘉亮    时间: 2015-7-1 11:50
finally里的语句一定会运行。
return 1后。
finally里的return 2还是会运行。
所以get()方法最终结果还是return 2
作者: 高耀洋    时间: 2015-7-1 11:54
结果为2  这么简单 ,逗儿呢,敲一遍代码就是知道了
作者: 改变    时间: 2015-7-1 13:18
又涨见识了,我猜结果是2
作者: fanxin_meng    时间: 2015-7-1 13:32
孙嘉亮 发表于 2015-7-1 11:50
finally里的语句一定会运行。
return 1后。
finally里的return 2还是会运行。

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

敲一遍我也知道答案,主要是想知道try,finally的运行机制
作者: rdzhang1010    时间: 2015-7-1 20:05
涨见识了
作者: kime    时间: 2015-7-1 21:20
不管抛不抛出异常,finally内的代码是一定要执行的的。结果是2
作者: 路途    时间: 2015-7-1 21:28
考的知识点是无聊try块中的异常是否抛出,finally代码块一定会执行





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2