try catch finally中的return

try catch 中finally语句总是可以执行的,不管try中是否含有return语句

public class TestReturn {
	public static void main(String[] args){
		System.out.println(testReturn());
	}
	public static int testReturn(){
		int i = 0;
		try{
			i = 1;
			return i;
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			i += 1;
			System.out.println(i);
		}
		return i;
	}
}

  输出结果

2 //这是finally语句中的输出语句输出的
1 //这是方法中try中return的值

  从输出结果可以看到,先执行try语句,再执行finally,再执行try中的return语句。。。。。finally中的对try中变量修改后,对try中return不影响,因为try中要return的变量已经保存了。。

如果finally含有return,则直接在finally中return,不从try return了。。

原文地址:https://www.cnblogs.com/whytohow/p/5126236.html