Java异常try里面有return,finally代码会执行吗

 我来答
蒿贞0H7
2017-12-20 · TA获得超过868个赞
知道小有建树答主
回答量:615
采纳率:85%
帮助的人:350万
展开全部

finally段的代码无论是否发生异常都要执行!

代码执行顺序介绍

如果try中的语句出现异常,那么try块中异常语句后的代码不执行,直接执行catch块中的代码,最后执行finally块中的代码(遇到return结束程序);如果try中的语句没有异常,执行try块中return前的语句,最后执行finally块中的语句(遇到return结束程序),不会执行catch块中的语句。

代码演示验证:

  • 当try块中return前的语句没有异常时

public class ReturnTest {
    public static void main(String[] args) {
        try {
            System.out.println("try中的语句");
            return;
        } catch (Exception e) {
            System.out.println("catch中的语句");
            return;
        } finally {
            System.out.println("finally中的语句");
        }
    }
}

执行效果:

  • 当try块中return前的语句出现异常时:

public class ReturnTest {
    public static void main(String[] args) {
        try {
            int ii = 5;
            ii = ii / 0; // 分母不能为0,此处有异常
            System.out.println("try中的语句");
            return;
        } catch (Exception e) {
            System.out.println("catch中的语句");
            return;
        } finally {
            System.out.println("finally中的语句");
        }
    }
}

执行效果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式