为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的最后一个finally那里显示有问题,是非法类

package imooc_exception_demo;

public class TryCatchText {
    public static void main(String[] args) {
        TryCatchText tc = new TryCatchText();
        int result = tc.text();
        int result2 = tc.text2();
        System.out.println("方法执行完毕,返回值为:" + result);
System.out.println("text2执行完毕");
    }

    /*
    devider(除数)result(结果)
    try-catch捕获while循环
    每次循环devider-1次,result+=100/devider
    若有异常打印抛出异常了返回-1否则返回result
     */
    public int text() {
        int devider = 10;
        int result = 100;
        try {
            while (devider >= -1) {
                devider--;
                result = result + 100 / devider;
            }
            return result;
        } catch (Exception e) {
            System.out.println("输出异常了");
            return -1;
        }
    }


    /*
devider(除数)result(结果)
try-catch捕获while循环
每次循环devider-1次,result=999
若有异常打印抛出异常了返回-1否则返回result
finally:这是finally!!,输出result
 */
    public int text2() {
        int devider = 10;
        int result = 100;
        try {
            while (devider >= -1) {
                devider--;
                result = result + 100 / devider;
            }
            return result;
        } catch (Exception e) {
            System.out.println("输出异常了");
            return result = 999;
        }
    }
    finally
    {
        System.out.println("这是finally!!");
        System.out.println("我是result,我的值是:" +result );

    }
}


正在回答

5 回答

你应该把finally放进函数中,

在return result = 999;删掉一个“}”然后在最后加一个“}”


0 回复 有任何疑惑可以回复我~

位置应该没关系,突然发现是finally前面多了一个“}”,?

0 回复 有任何疑惑可以回复我~

try{}catch{}finally{}

这三者是同一层次的。你代码里面的finally位置有问题

0 回复 有任何疑惑可以回复我~

没用结果还是一样


0 回复 有任何疑惑可以回复我~

给catch加一句e.printStackTrace();试试

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的最后一个finally那里显示有问题,是非法类

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信