2013-01-05 20 views
0
實現Java應用程序

可能重複:
Java unchecked/checked exception clarification與unchecked異常

我一直在閱讀有關辯論檢查VS在java中未檢查異常,我知道其中的差別,但我不完全清楚我們如何能夠選擇一個。我們真的有什麼選擇嗎?如果存在檢查異常的可能性,java不會強制我們使用try catch。我們如何僅使用未經檢查的異常來實現應用程序,我們如何處理可能存在針對此類應用程序的已檢查異常的情況。如果有人是一種足以與如何檢查例外unchecked異常,這將是真棒:)

回答

0

將一些代碼示例來清除此爲我您沒有要更改的選項內置到檢查的異常您使用的庫,包括JDK。

但是如果你願意的話,你可以將它們包裝起來並重新扔掉。您最小化對必須嘗試/捕獲的方法範圍的影響。

而且您可以創建所有您創建的自定義例外延伸RuntimeException

0

經過異常意味着在表示並不意外行爲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)這一事實不會改善任何事情。