1. 程式人生 > >第六十二條 每個方法丟擲的異常都要有文件

第六十二條 每個方法丟擲的異常都要有文件

每個方法,都要有文件註釋,這樣便於後期自己回顧當初的功能以及便於他人的閱讀理解,同樣的,每個方法丟擲的異常,也需要文件註釋。因此,花費時間為每個方法丟擲的異常文件是特別重要的。我們要記住,需要宣告受檢的異常,用Javadoc的@throws標記,並記錄每個異常的條件。如果一個方法會丟擲多個異常類,不要直接宣告可以丟擲這些類的父類,也不要宣告一個方法 “throws Exception”,或者直接宣告 “throws Throwable”,這種寫法比較極端,給外面暴露的資訊就是,這裡可能會有異常,沒有其他資訊了。這種做法除了防止崩潰外,基本無作用,甚至還有反作用,它掩蓋了具體要丟擲的異常,甚至因此掩蓋了其他條件可能產生出的異常,令我們不知道其他地方可能會有問題。

為方法丟擲的異常建立文件註釋,可以讓其他人閱讀程式碼時,能夠注意到這裡面哪些地方肯能會產生錯誤,讓他們能夠注意避免這些錯誤;完整的文件,可以組織成為列表文件,這樣就可以描述出正確使用方法的前提,讓使用者一目瞭然。因此,在文件中記錄下未受檢的異常是滿足前提條件的最佳做法。這份文件成了該介面的通用約定的一部分,它指定了該介面的多個實現必須遵循的公共行為。

使用Javadoc的@throws標籤記錄一個方法可能丟擲的個個未受檢異常,但是不要使用throws關鍵字將未受檢的異常包含在方法的宣告中。使用API的程式設計師必須知道哪些異常是需要受檢的,哪些是不需要受檢的,這很重要,因為這兩種情況下他們的責任是不同的。當缺少由throws宣告產生的方法標頭時,由Javadoc的@throws標籤所產生的文件就會提供明顯的提示資訊,以幫助程式設計師區分受檢的異常和未受檢的異常。

為每個方法可能丟擲的所有未受檢異常建立文件是很理想的,現實中並非總能做到這一點。我們只能儘量的做到,因為方法可能會變化,對應的丟擲異常可能也會變化。如果一個類中有多個方法都丟擲相同的異常,可以共用一個文件。總而言之,要為你編寫的每個方法所能丟擲的每個異常建立文件。