zoukankan      html  css  js  c++  java
  • Java 异常

    1. try catch finally里有return

    总结:

    1、不管有没有异常,finally中的代码都会执行
    2、当try、catch中有return时,finally中的代码依然会继续执行
    3、finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变,依然返回保存起来的值。也就是说方法的返回值是在finally运算之前就确定了的
    4、如果return的数据是引用数据类型,而在finally中对该引用数据类型的属性值的改变起作用,try中的return语句返回的就是在finally中改变后的该属性的值
    5、finally代码中最好不要包含return,程序会提前退出,也就是说返回的值不是try或catch中的值

    先执行try中的语句,包括return后面的表达式,
    有异常时,先执行catch中的语句,包括return后面的表达式,
    然后执行finally中的语句,如果finally里面有return语句,会提前退出,
    最后执行try中的return,有异常时执行catch中的return。

    在执行try、catch中的return之前一定会执行finally中的代码(如果finally存在),如果finally中有return语句,就会直接执行finally中的return方法,所以finally中的return语句一定会被执行的。编译器把finally中的return语句标识为一个warning.

     ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    Linux下vim中文乱码问题
    phoniex初始化
    [Android] 修改ImageView的图片颜色
    [osx] android studio下修改avd的hosts文件
    [osx] 设置crontab
    [osx] 查看端口被占用
    [Ubuntu] change mouse scrolling between standard and natural
    [Vuejs] 关于vue-router里面的subRoutes
    [nodejs] Error: unable to verify the first certificate
    [SublimeText] 安装包管理
  • 原文地址:https://www.cnblogs.com/yundong333/p/12101014.html
Copyright © 2011-2022 走看看