只用try和finally而不使用catch的原因:
- try方法块抛出的异常,catch处理不了(NPE...)
public void testTryAndFinally(String name){
try {
name.length();// NullPointerException
}
finally {
System.out.println("aa");
}
}
- 程序必须执行的方法,无论抛不抛异常,无论能不能catch住
public void m(){
lock.lock(); // block until condition holds
try {
// ... method body
} finally {
lock.unlock()
}
}
try-catch-finally的执行顺序: