finally
finally的作用是为了保证无论出现什么情况,finally块里的代码一定会被执行。
①finally块中的语句什么时候被执行?
任何语句执行都只能在return前执行,因此finally块里的代码也是在return前执行的。
并且 try-finally或者catch-finally中都有return, 那么finally块中的return语句将会覆盖别出的return语句,最终返回调用者那里的是finally中return的值。
public static int testFinally(){
try{
//int a = 5/0;
return 1;
}catch(Exception e){
System.out.println("Exception");
return 2;
}finally{
System.out.println("finally");
return 3;
}
}
public static void main(String[] args) {
int r = testFinally();
System.out.println(r);
}
Exception:
检查异常 : 所有继承自Exception,并且不是运行时异常的异常都是检查异常。最常见的检查异常是IO异常和SQL异常。java编译器强制程序去捕获检查异常。
运行时异常: 编译器没有强制程序对运行时异常进行捕获并处理。
public void doSomething() throws ArithmeticException{
System.out.println();
}
public void doSomething2() throws IOException{
System.out.println();
}
@Test
public void testException(){
doSomething();
try {
doSomething2();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}