try catch finally中return

一、 无论有木有出现异常,finally块中代码都会执行;函数

2、当trycatch中有return时,finally仍然会执行;spa

3、当trycatch中有return时,finally也有return时,程序执行finally中的returnorm

-----------------------例如1-----------------------------it

public static String test1(){
   
try {
        System.out.println("---try----");
        return "--return---try--";
    } catch (Exception e) {

    }finally{
        System.out.println("---finally----");
        return "--return--finally--";
    }
}

-------
执行结果----------------io

--try----
--finally----
test

 --return--finally—变量

-----------------------例如2-----------------------------程序

 

public static String  test2(){
        try {
            int a=1/0;
            System.out.println("---try----");
            return "--return---try--";
        } catch (Exception e) {
            System.out.println("------catch ----");
            return "-return--catch--";
        }finally{
            System.out.println("---finally----");
            return "--return--finally--";
        }
    }
--------------
执行结果------异常

----catch ----
---finally----
--return--finally--

static

4、finally是在return后面的表达式运算后执行的(此时并无返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是以前保存的值),因此函数返回值是在finally执行前肯定的;所以,即便finally中对变量x进行了改变,可是不会影响返回结果。

-----------------------例如-----------------------------
public static int test(){
    int x = 1;
    try {
        x = 2;
        return x;
   
} finally{
        x = 3;
    }
}

-----------执行结果----------------

--------2--------

相关文章
相关标签/搜索