try,finally中都有return时程序的执行顺序

try代码块中包含return语句,finally代码块中不包含return语句;package Exception;

public class Test02 {
	public static void main(String[] args) {
			System.out.println(test());
	}
	public static int test(){
			try{
				int i=1;
				return i;
			}
			finally{
				int i=2;
				System.out.println(i);
			}
	}
}

结果

2
1

try代码块和finally代码块中都有return语句

public class Test01 {

	public static void main(String[] args) {
		
		System.out.println(test());
	}
	
public  static int  test(){
		try{
			int i = 1;
			return i;
		   }
		finally{
			int j = 2;
			return j;
		}
}	
}

结果

2

结论

1.如果try代码块里有return语句,而finally代码块里没有return语句,程序会先执行finally代码块里的代码然后再执行try代码块里的return语句;

2.如果try代码块和finally代码块里都有return语句,try代码块里的return语句会优先finally代码块里的return语句执行,但不会把返回的结果返回给主函数,而是会把finally代码块里return的结果返回给主函数。

posted @ 2019-10-14 10:19  编程迷悟  阅读(329)  评论(0编辑  收藏  举报