經過異常意味着在表示並不意外行爲should't發生的情況下被拋出(例如,由0的區別),但其中可能出現的情況和其中程序員應該採取管理他們的照顧。
這是Java語言和它工作得很好,因爲你總是知道你應該關心使用它提供的功能,可能會導致你應該處理特殊情況的API時什麼的Java API的設計。
我沒有看到關於檢查異常的遺忘點,當然你可以封裝所有可以引發異常的內容,這樣你可以在內部管理髮生的事情,只需拋出未經檢查的(自定義)異常,但你必須無論如何關心這些問題。
唯一安全的方法,我可以看到的是這樣的:
class UncheckedFileNotFoundException extends RuntimeException {
..
}
class Foobar {
public static void method(String path) {
try {
FileReader reader = new FileReader(path);
}
catch (FileNotFoundException e) {
// code;
throw new UncheckedFileNotFoundException();
}
}
}
但這好好嘗試解決問題:如果沒有找到文件,則調用者應該相應地做一些事情,讓他忽略例外或隱藏該方法可能拋出一個(因爲方法簽名中沒有商品throws FileNotFoundException
)這一事實不會改善任何事情。