在return中使用finally

因为在finally子句总是会执行的情况下,在一个方法中,我们可以从多个点返回,并且可以保证重要的清理工作仍然会执行:

public class MultipleReturns {
	public static void f(int i) {
		System.out.println("Initialization that requires cleanup");
		try {
			System.out.println("Point 1");
			if(i == 1)return;
			System.out.println("Point 2");
			if(i == 2)return;
			System.out.println("Point 3");
			if(i == 3)return;
			System.out.println("End");
			return;
		}finally {
			System.out.println("Performing cleanup");
		}
	}
	public static void main(String[] args) {
		for(int i=1;i <= 4;i++)
			f(i);
	}
}

运行结果:

从输出我们可以看出,在finally类内部,从何处返回无关紧要的。

猜你喜欢

转载自blog.csdn.net/qq_41026809/article/details/92647593