首页 > 其他分享 >代码阅读题-try、catch和finally中return

代码阅读题-try、catch和finally中return

时间:2022-09-25 12:00:49浏览次数:52  
标签:返回 return try finally catch throw

    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        int a= 1;
        try{
            a=2/0;
            return a;
        }catch (Exception e){
            a=3;
            return a;
        }finally {
            a=4;
            System.out.print("+nowcoder");
            // 有return就返回4,没有就返回3
            return a;
        }
    }

如果finally中没有return,按照catch中的值返回
finally中有return,按照finally中修改的值返回

一旦在finally块中使用了return、throw语句,将会导致try块、catch块中的return、throw语句失效

当程序运行到try块、catch块中的return、throw语句时,不会立即结束并返回,而是去执行finally块(如果有)中的语句,然后再回过头来执行return(但是不会返回finally中修改的值,而是返回catch中的旧值
但是如果finally中return或者throw了,会导致方法的立即终止(此时的返回值也是finally中修改的值

标签:返回,return,try,finally,catch,throw
From: https://www.cnblogs.com/yaocy/p/16727584.html

相关文章