zoukankan      html  css  js  c++  java
  • java try中包含return语句,finally中的return语句返回顺序

    //结论: finally 中的代码比 return 和 break 语句后执行

    public static void main(String[] args) {
    int x=new Test.test();
    System.out.println(x);//out:1
    }


    int test(){
    /int x=1;
     try{
      return x;//在进入finally之前 已经将return的值传到返回栈中,finally中对x的修改并没有用return语句返回到主函数中
    }
    finally{
    x=2;// 并没有起作用
    //  return 2;// 加上此句, 比 try 中的return x语句后执行,所以 返回2
    }

    //////////////////////////////

    使用函数 更清楚的看出结论
    try{
    return fun1();
    }
    finally {
    return fun2();
    }
    }

    private int fun2() {
    System.out.println("fun2");
    return 2;
    }

    private int fun1() {
    System.out.println("fun1");
    return 1;
    }

    //返回  

    fun1

    fun2

    主函数中 值为2

  • 相关阅读:
    C++实现高斯滤波器
    移动通信
    最简单的DLL
    C/C++ 编译和链接过程
    Servlet 详解
    对 Java 集合的巧妙利用
    Java 泛型
    Java 字符编码与解码
    HTTP 400 错误
    a 标签的四种样式
  • 原文地址:https://www.cnblogs.com/todayjust/p/5679500.html
Copyright © 2011-2022 走看看