我需要執行一些初始化並在發生任何異常時進行清理。我仍然喜歡將異常傳遞給調用者。問題是我現在必須將這個方法聲明爲throws Throwable
,然後我必須在調用者中明確地處理這個throwable,就好像所有的過程都不隱含地拋出Throwable
一樣。愚蠢是不是?這樣做的執行清理並將異常傳遞給調用者
try {
init_step1();
init_step2();
}
catch (Throwable th) {
clean();
throw th;
}
init_step1()和init_step2()可能會拋出一個Throwable,我必須確保數據的一致性。我希望調用者只處理檢查的異常。這就是爲什麼他們稱他們爲「檢查」,不是嗎? – milan 2011-01-29 08:59:49