广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州如果在try模块的最后加return,finally模块还会执行吗?_北大青鸟IT学校

作者:邓华发布时间:2021-06-06分类:Java技术浏览:848


导读:如果在try模块的最后加return,finally模块还会执行吗?这是大家在学习Java的过程都会遇到的问题,那么下面我们一起来看看惠州北大青鸟学术部老师是怎么解答的。

如果在try模块的最后加return,finally模块还会执行吗?这是大家在学习Java的过程都会遇到的问题,那么下面我们一起来看看惠州北大青鸟学术部老师是怎么解答的。

是的. finally 模块会先执行再 return.


如果换成 System.exit (0)?

那就不会了. System.exit (0) 时. 会立马跳出程序.


try catch finally 的执行顺序

特殊情况就是里面加 return


举个例子去理解


public int getNumber() {

    int a = 0;

    try {

        String s = "t"; ------------------------(1)

        a = Integer.parseInt(s);-----------(2)

        return a;

    } catch (NumberFormatException e) {

        a = 1;-----------------------------------(3)

        return a;-------------------------------(4)

    } finally {

        a = 2;-----------------------------------(5)

    }

}

1、程序中标记的代码的执行顺序? 2、改程序的最后返回值(外部调用时)?


程序按顺序从上到下执行到(2),字符"t"转换成整数失败,产生异常并被捕获, 于是对a赋值成1,并将此值作为此方法的返回值(可以这么认为,该方法有一个存放返回值的空间,此时将1放在此处)。由于存在finally块,在返回前将该方法的内部变量a修改成2。 所以程序将按标记的顺序执行,外部调用该方法时得到的结果是1+


先执行try或catch里里面的代码,然后再执行finally,再执行try或catch里面的return.

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

java3.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表