1. 程式人生 > >第五十九條 避免不必要地使用受檢的異常

第五十九條 避免不必要地使用受檢的異常

受檢的異常是java程式的一個很好的特性,使用它可以大大提高程式碼的可靠性,但如果大量使用異常,則會給程式碼的結構帶來不方便,如果聲明瞭大量的異常,都需要在丟擲異常的地方新增相對應的處理程式碼,這會給開發者帶來很大的負擔。異常這個東西,不能過分依賴。就像藥一樣,藥能治病,但是醫藥三分毒。健康的一個人,可以通過穿衣服保暖,就決不要去吃藥維持體溫。我們使用異常時,需要滿足以下條件,

一、正確的使用了api,但還不能阻止異常的發生;天氣很冷,你已經穿了厚厚的衣服,但還是感冒了,這時候就吃藥吧,沒辦法。 二、一旦產生異常,我們馬上可以採取相對應的措施。

就像前幾條的知識,

            try {             int i = 0;             while (true){                 range[i++].climb();             }         }catch (ArrayIndexOutOfBoundsException e){

        } 這個就屬於不必要的異常,我們就通過for迴圈即可解決問題;另外一種,書中的例子

        try {             obj.action(args);         } catch(TheCheckedException e) {             //處理異常...         }

意思是不管有沒有這個許可權,都去掉用action(args),如果沒許可權,就通過受檢異常來保護,這樣寫業務邏輯不會出錯,但不符合程式碼規範,所以可以提供一個方法,是否有許可權,如果有,執行action(args),如果沒有,執行異常處理,這樣條理清晰

        if(obj.actionPermitted(args)) {             obj.action(args);         } else {              //處理異常...         }

程式碼重要的是結構合理清晰,這樣便於擴充套件。清晰的結構就是進行判斷分流,按照邏輯,一層層分下去,每個支桿都有對應的邏輯處理,這樣,清晰簡潔,以擴充套件。