您好,登錄后才能下訂單哦!
最近在重構(gòu)代碼的時候,有些想法,記錄一下:
對于一些會拋異常的代碼進行封裝,是應(yīng)該在封裝的方法處直接try-catch還是throw exception讓外面的調(diào)用者進行處理?
其實catch就相當(dāng)于內(nèi)部的一個回調(diào),如果在內(nèi)部就try-catch掉了,這個回調(diào)是無法傳遞到外面的,這樣是不利于擴展的。比如下面的代碼:
這樣系統(tǒng)就會提示在內(nèi)部IOException永遠不會拋出,需要去掉try-catch模塊。但是catch里是有代碼邏輯的,所以封裝的時候不能一味地進行try-catch以圖省事。
當(dāng)然還有一個解決辦法,就是在封裝的方法內(nèi)部的catch里再throw 異常對象。但是這樣就是重復(fù)啰嗦的。
2.throw new RuntimeException
1)在使用建造者設(shè)計模式的時候,某些屬性的建造是有先后順序或者必要性的。如果調(diào)用者沒有按照
順序建造或者建造不全,需要直接拋出異常。防止異常拖后拋出,和業(yè)務(wù)的異?;祀s在一起。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。