Java以嚴謹著稱,對於checked異常,
1. 在出現異常的地方使用catch捕捉並忽略它
2. 直接拋出異常
對於第一種方法,有的時候很危險,異常有的時候必須被上層知道,如果有部分執行不正確,程序是需要停止的。第二種方法,會很麻煩,這樣一層層調用,每層都要寫異常相關的代碼,會多很多的代碼。
可以定義一個這樣的方法對異常和錯誤進行處理:
public static void launderThrowable(Throwable t){
if(t instanceof RuntimeException)
throw (RuntimeException)t;
else if(t instanceof Error)
throw (Error)t;
else throw new RuntimeException(t);
}
這樣上層可以選擇忽略對Throwalbe的相關捕捉,在程序運行不正確時,又可以停止程序運行。