文档章节

try catch finally中return

LYQ1990
 LYQ1990
发布于 2016/04/26 14:23
字数 263
阅读 22
收藏 3

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1、 不管有木有出现异常,finally块中代码都会执行;

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

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

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

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

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

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

--try----
--finally----

 --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--

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

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

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

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

 

© 著作权归作者所有

LYQ1990
粉丝 9
博文 238
码字总数 206220
作品 0
东城
私信 提问
有return的情况下try catch finally的执行顺序(最有说服力的总结)

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,...

Atom_me
2015/10/23
31
0
try catch finally 顺序执行

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,...

ForingY
2016/02/18
57
0
asp.net中try catch finally中含有return时的执行顺序

1、try{} catch(){}finally{} return; 显然程序按顺序执行。 2、try{ return; }catch(){} finally{}return; (1)、程序执行try块中return之前(包括return语句中的表达式运算)代码; (2)、再...

学习也休闲
2015/09/29
374
0
Java中try、catch、finally

面试的笔试常涉及的问题: 有return的情况下try、catch、finally的问题。 结论    1、不管有没有异常,finally中的代码都会执行    2、当try、catch中有return时,finally中的代码依然会...

YuanyuanL
2018/03/06
27
1
java异常小结

一、java中异常的分类: 1.Error 当程序发生不可控的错误时,通常做法是通知用户并中止程序的执行。与异常不同的是Error及其子类的对象不应被抛出。 Error是throwable的子类,代表编译时间和...

hello菜bird
2016/09/02
50
0

没有更多内容

加载失败,请刷新页面

加载更多

006-ELK的二进制安装

二进制安装ELKstack 本次搭建属于单点,在同一台机器上进行安装 基础组件部署 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yu...

伟大源于勇敢的开始
3分钟前
0
0
OSChina 周四乱弹 —— 浙江台的电话号码倒是记得挺牢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Out On The Streets》 一直不理解北欧人对重金属和死亡摇滚的热情,听完这首歌好像理解了。#今日歌曲推荐# 《Out On The Stre...

小小编辑
今天
6
0
Leetcode PHP题解--D121 21. Merge Two Sorted Lists

D121 21. Merge Two Sorted Lists 题目链接 21. Merge Two Sorted Lists 题目分析 合并两个有序链表。 思路 逐个遍历两个链表,把小的数字塞入数组里。之后再拼起来。 最终代码 <?php/** *...

skys215
今天
5
0
mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
今天
14
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部