有什麼辦法可以避免需要在Java中的方法接口中聲明「throws」?重新編寫異常,但不添加拋出聲明
問題是:我有一個非常簡單的方法,它會拋出NPE。這很簡單,我添加了所有可能的檢查,坦白地說我無法想象這會發生什麼,所以我想調查。我添加了try/catch(Throwable e)和logging,並最終要重新拋出。
這需要我添加「拋出」聲明。但是這個方法是接口的實現,所以我需要更新接口,然後是所有其他實現,然後是一些(可能很多)的用法。真的沒有辦法避免這種情況嗎?我現在要做的是在catch的結尾導致本地異常:通過訪問null或通過除以0 - 這看起來很糟糕!
不要捕獲'Throwable',因爲它包含像'VirtualMachineError','OutOfMemoryError'和'ThreadDeath'這樣的東西,你不想捕獲或試圖從中恢復。只要抓住'Exception'或者更好的辦法就是'RuntimeException'。 –
@DavidConrad,你是對的。如果我抓到特定的NPE,我不會有這個問題。 – Kurtevich