2017-12-27 958 views

回答

0

在拋出必須被捕獲的異常的Java方法(把裏面的try/catch塊),代碼將無法編譯,直到你做的,所以如果你不這樣做,你會得到一個紅線/編譯錯誤。

那些被稱爲檢查例外,例外的是已經被抓住,像IO。

其他異常,未檢查,或運行時異常,一般不應該沒有一個try/catch來處理,但是你需要警惕他們或解決這些問題。

例如,而不是追趕NullPointerException,你應該檢查null如果實例可以null

+0

讓我們舉個例子 「SharedPreferences.getInt(String鍵,詮釋利用DefValue)」。如果存在不是int的此名稱的首選項,則會拋出ClassCastException。如果我不把它放在try/catch塊中,我不會看到紅線/編譯錯誤(Android Studio根本不會將其視爲編譯錯誤)。我想使用try/catch,因爲在「catch」中我想創建可能來自用戶的錯誤的日誌(文本文件)。那麼,有沒有辦法告訴Android Studio 3.0.1突出顯示可以拋出異常的代碼中的每個方法? – Liviu

+0

ClassCastException異常是一種例外,你應該可以解決,而不是「趕」的,確保當你把某些類型的偏好,你獲得的是相同的類型。因爲你無法從這樣的異常中恢復,你會使用什麼值而不是你不能投射的值,這將是不正確的。使用運行時崩潰捕獲這些情況並在開發時修復它們 – elmorabea

+0

謝謝。你說得對。這是一個很好的做法。無論如何,是否有可能告訴Android Studio 3.0.1突出顯示可引發異常的代碼中的每個方法?這是毫無疑問的。 :) – Liviu

相關問題