try...finally语句执行顺序

1.finally语句执行顺序一定在try语句后!!!

2.下段代码中最终返回结果是10,++i语句在return语句执行后才执行。

public int returnNum(){
    int i= 10;
    try{
        return i;
    }finally{
        ++i;
    }
}

3.下列语句最终返回结果"finally"。

    代码执行顺序为1,2。按理说如果先执行了代码段1,那么返回结果直接就是"try"了,但因为有finally段代码存在,所以函数不会直接将最后结果返回,而是将结果存放在函数栈中,等待代码段2执行。

    但代码段2执行完成之后,将函数栈中的结果值覆盖了,故最终返回"finally"

public String returnString(){
    try{
        return "try";        //1
    }finally{
        return "finally";    //2
    }
}

4.综上,函数会先执行try段代码,如果有返回值,则先将返回值保存至函数栈中,待finally段函数执行完毕再将函数结果返回。

猜你喜欢

转载自blog.csdn.net/guaituo0129/article/details/86526181