finally的使用

101 阅读1分钟

try-catch-finally中finally的使用:

1、finally是可选的;2、finally中声明的是一定会被执行的代码,即使catch中又出现异常了,try中有return语句,catch中有return语句等情况;3、像数据库连接、输入输出流、网络编程Socket等资源,JVM是不能自动的回收的,我们需要自己手动的进行资源的释放,此时的资源释放,就需要声明在finally中。

代码如下:

public class FinallyTest {
	@Test
	public void TestMethod() {
		int num = method();
		System.out.println(num);		
	}
	public int method() {
		try {
		int [] arr = new int [10];
		System.out.println(arr[10]);
		return 1;
	}catch(ArrayIndexOutOfBoundsException e) {
		e.printStackTrace();
		return 2;
	}finally {
		System.out.println("一定会被执行");
		return 3;
	}
}
}

结果:

一定会被执行

3

public class FinallyTest {
	@Test
	public void TestMethod() {
		int num = method();
		System.out.println(num);		
	}
	public int method() {
		try {
		int [] arr = new int [10];
		System.out.println(arr[10]);
		return 1;
	}catch(ArrayIndexOutOfBoundsException e) {
		e.printStackTrace();
		return 2;
	}finally {
		System.out.println("一定会被执行");
	}
}
}

结果:

一定会被执行

2

public class FinallyTest {
	@Test
	public void Test1() {
		try {
		int a = 10;
		int b = 0;
		System.out.println(a/b);
	}catch(ArithmeticException e) {
		e.printStackTrace();
	}catch(Exception e) {
		e.printStackTrace();
	}finally {
		System.out.println("你好帅啊~~");
	}	
	}
}

结果:

你好帅啊~~

public class FinallyTest {
	@Test
	public void Test1() {
		try {
		int a = 10;
		int b = 0;
		System.out.println(a/b);
	}catch(ArithmeticException e) {
		e.printStackTrace();
	}catch(Exception e) {
		e.printStackTrace();	
	}
		System.out.println("你好帅啊~~");
}
}

结果:

你好帅啊~~