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("你好帅啊~~");
}
}
结果:
你好帅啊~~