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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bfl625 中级黑马   /  2014-9-2 21:08  /  1843 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
                int num = getNum();
                System.out.println(num);
        }
public static int getNum() {
                int x = 10;
                try {
                        System.out.println(1/0);
                        return x;
                } catch (Exception e) {
                        x = 20;
                        return x;                                                        //当程序执行到了return语句会有一个返回路径
                }finally {                                                                //但是在完全return之前会看有没有finally如果有
                                                                                                //先执行finally,再把return返回路径的值返回
                        x = 30;
                        System.out.println("finally执行了吗");
                        //return x;
                }
        }

14 个回复

倒序浏览
抓住一只妹子!!!!!!!!!!!!!!!还是一只基佬???????????
回复 使用道具 举报
还没学到,请问 try, catch finally是关键字吗?都是什么意思。
回复 使用道具 举报
进击的大鹏 发表于 2014-9-2 23:25
还没学到,请问 try, catch finally是关键字吗?都是什么意思。

这是异常那部分的知识!try里面放有可能出现异常的代码;catch对异常做出处理;finally里面放的是一定会执行的代码,一般用于释放资源!
回复 使用道具 举报
java 0803和你有什么关系
回复 使用道具 举报
finally里面return把try catch里面的return给覆盖了
回复 使用道具 举报
一般finally里放的都是关闭资源的代码,为什么你的没有呢
回复 使用道具 举报
finally执行了吗?
30
回复 使用道具 举报

不是的,是20.
回复 使用道具 举报
东子-7'C 发表于 2014-9-3 12:05
一般finally里放的都是关闭资源的代码,为什么你的没有呢

这是个面试题,没有使用资源,重点是考察finally的使用!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
懂了,,谢谢
回复 使用道具 举报
finally执行了吗
20
回复 使用道具 举报
关于这种题目还真是层出不穷啊,  受教了
回复 使用道具 举报
20 ,在try里执行出现异常时跳进catch,try里面异常下面的return执行不到.catch里面x赋值为20 并且return加载进内存,这时加载进内存的x是20,然后进入finally x被赋值为30 然后结束,但是返回的还是内存里的20.如果finally里面有return语句则覆盖catch里面的return变成30.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马