• 在try{}里面有一个return语句,那么紧跟在后面的finally{}里面的code还会执行吗?


    只要try{}里面没有System.exit(),finally{}里面的code就会执行;

    package com.test;
    
    public class TryAndFinally {
        public String ff(){
            System.out.println("ff()");
            return "111";
        }
        public String hh(){
            try{
                return ff();
            }catch(Exception e){
                System.out.println("e");
            }finally{
                System.out.println("finally");
                return "finally";
            }
        }
        public static void main(String[] args){
            TryAndFinally taf=new TryAndFinally();
            taf.hh();
        }
    }

    执行的结果是:ff()       finally

    他们的执行程序是:先执行ff()方法,然后当遇到try{}里面的return时,程序就自动执行finally{}然后在return。

    所以说finally{}既可以说是在return之前执行也可以说是在执行return的中间执行。

    如果

    package com.test;
    
    public class TryAndFinally {
        public String ff(){
            System.out.println("ff()");
            return "111";
        }
        public String hh(){
            try{
                //return ff();
                System.exit(1);
            }catch(Exception e){
                System.out.println("e");
            }finally{
                System.out.println("finally");
                return "finally";
            }
        }
        public static void main(String[] args){
            TryAndFinally taf=new TryAndFinally();
            taf.hh();
        }
    }

    执行的结果是空,因为执行System.exit()就推出了虚拟机,finally{}不再执行。

  • 相关阅读:
    汇编语言 第二单元 整理
    iOS10推送必看UNNotificationServiceExtension
    RSA加,解密
    添加购物车动画
    长按移动cell
    http live streming
    修改工程
    searbar
    tableView 编辑模式
    iOS 3D touch
  • 原文地址:https://www.cnblogs.com/xinxinjava/p/3061211.html
Copyright © 2020-2023  润新知