最近在重構(gòu)代碼的時候,有些想法,記錄一下:
目前成都創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、和田網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。對于一些會拋異常的代碼進行封裝,是應該在封裝的方法處直接try-catch還是throw exception讓外面的調(diào)用者進行處理?
其實catch就相當于內(nèi)部的一個回調(diào),如果在內(nèi)部就try-catch掉了,這個回調(diào)是無法傳遞到外面的,這樣是不利于擴展的。比如下面的代碼:
這樣系統(tǒng)就會提示在內(nèi)部IOException永遠不會拋出,需要去掉try-catch模塊。但是catch里是有代碼邏輯的,所以封裝的時候不能一味地進行try-catch以圖省事。
當然還有一個解決辦法,就是在封裝的方法內(nèi)部的catch里再throw 異常對象。但是這樣就是重復啰嗦的。
2.throw new RuntimeException
1)在使用建造者設計模式的時候,某些屬性的建造是有先后順序或者必要性的。如果調(diào)用者沒有按照
順序建造或者建造不全,需要直接拋出異常。防止異常拖后拋出,和業(yè)務的異常混雜在一起。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。