異常處理是Java軟體開發中的一個重要部分,它是關乎每個應用的一個非功能性需求,是為了處理任何錯誤狀況,比如資源不可通路,非法輸入,空輸入等等,Java提供了幾個異常處理特性,以try,catch和finally關鍵字的形式内建于語言自身之中,Java程式設計語言也允許你建立新的異常,并通過使用throw和throws關鍵字抛出它們,事實上,在Java程式設計中,Java的異常處理不單單是知道文法這麼簡單,它必須遵循标準的JDK庫,和幾個處理錯誤和異常的開源代碼,這裡我們将讨論一些關于異常處理的Java最佳實踐。
Java軟體開發常出現哪些異常?要怎麼處理?.jpg
為可恢複的錯誤使用檢查型異常,為程式設計錯誤使用非檢查型錯誤
選擇檢查型還是非檢查型異常,對于Java程式設計人員來說,總是讓人感到困惑。檢查型異常保證你對錯誤條件提供異常處理代碼,這是一種從語言到強制你編寫健壯的代碼的一種方式,但同時會引入大量雜亂的代碼并導緻其不可讀。當然,如果你有替代品和恢複政策的話,捕捉異常并做些什麼看起來似乎也在理,在Java程式設計中選擇檢查型異常還是運作時異常。
在finally程式塊中關閉或者釋放資源
這在Java程式設計中,是一個廣為人知的最佳實踐,在處理網絡和IO類的時候,相當于一個标準。在finally塊中關閉資源,在正常和異常執行的情況下,保證之前和稀缺資源的合理釋放,這由finally塊保證。從Java7開始,該語言有了一項更有趣的功能:資源管理自動化或者ARM塊能實作這一功能。盡管如此,我們仍然要記住在finally塊中關閉資源,這是對于釋放像FileDescriptors這類,應用在socket和檔案程式設計的情況下的有限資源很重要的。
使用标準異常
我們的第九條最佳實踐建議使用标準和内置的Java異常。使用标準異常而不是每次建立我們自己的異常,對于維護性和一緻性,不管是現在還是以後,都是最好的選擇。重用标準異常使代碼更具可讀性,因為大部分Java開發人員對标準的像源自于JDK的RuntimeException異常,IllegalStateException異常,IllegalArgumentException異常或者NullPointerException異常,(開發者)他們能一眼就知道每種異常的目的,而不是在代碼裡查找或者在文檔裡查找使用者定義的異常的目的。
記錄任何方法抛出的異常
Java程式設計語言提供了throw和throws關鍵字來抛出異常,在javadoc中用@throw記錄任何方法可能會抛出的異常。如果你編寫API或者公共接口,這就變得非常重要。任何方法抛出的異常都有相應的文檔記錄,這樣你就能下意識的提醒任何使用(該方法)的人。
這些就是所有在Java程式設計中在處理異常的時候需要遵循的最佳實踐,讓我們知道了什麼是在Java程式設計中編寫異常處理代碼時需要遵循的實踐。