zoukankan      html  css  js  c++  java
  • Java中的finally 和return

    直接上代码

    public static int a(){
            int i = 1;
            try{
                i++;
                return ++i;
            }catch(Exception e){
    
            }finally {
                if(i > 1){
                    System.out.println(" i =  " + i);// i =  3
                }
            }
            return 0;
        }
    
        public static void main(String[] args) {
            System.out.println(a());//  结果: 3
        }

    finally 中的代码必然会执行,但是是在执行return的逻辑后 ,方法返回之前执行的。

    下面再看一段代码:

    public static int a(){
            int i = 1;
            try{
                i++;
                return ++i;
            }catch(Exception e){
    
            }finally {
                if(i > 1){
                    System.out.println(" i =  " + i);// i =  3
                }
                return ++i;
            }
    
        }
    
        public static void main(String[] args) {
            System.out.println(a());// 4
        }

    此时,方法返回的结果是4,也就是说,返回值被覆盖了。

  • 相关阅读:
    155. 最小栈
    160. 相交链表
    PAT 1057 Stack
    PAT 1026 Table Tennis
    PAT 1017 Queueing at Bank
    PAT 1014 Waiting in Line
    PAT 1029 Median
    PAT 1016 Phone Bills
    PAT 1010 Radix
    PAT 1122 Hamiltonian Cycle
  • 原文地址:https://www.cnblogs.com/yrjns/p/13540750.html
Copyright © 2011-2022 走看看