finally :不管是否异常都会进入
测试1
@Test
public void test2() {
try {
int i =100/0;
System.out.println(i);
} catch(Exception e){
System.out.println(1);
}finally {
System.out.println(2);
}
}
测试2:带有 return 也会进入finally
public String fun1() {
try {
int i =100/3;
System.out.println(i);
return "try 结果";
} catch(Exception e){
System.out.println(1);
return "异常";
}finally {
System.out.println(2);
//return "finally";
}
}
测试3:finall有不会影响返回结果
public String fun1() {
int i =100;
try {
i++;
System.out.println(i);
return "结果";
} catch(Exception e){
i++;
System.out.println("catch="+i);
return "异常";
}finally {
i=10;
System.out.println(i);
//return "finally";
}
}
测试4: finally里return 会中断 运行, 直接返回
public String fun1() {
int i =100;
try {
i++;
System.out.println(i);
return "结果";
} catch(Exception e){
i++;
System.out.println("catch="+i);
return "异常";
}finally {
i=10;
System.out.println(i);
return "finally";
}
}
测试5: finally 出现异常,抛出异常,中断程序
public String fun1() {
int i =100;
try {
i++;
System.out.println(i);
return "结果";
} catch(Exception e){
i++;
System.out.println("catch="+i);
return "异常";
}finally {
i=100/0;
System.out.println(i);
//return "finally";
}
}