統計

          留言簿(1)

          DB

          Others

          QA

          Tech Website

          閱讀排行榜

          評論排行榜

          【Effective Java】--異常

          38、只針對不正常的條件使用異常
          異常只應該被用于不正常的條件,它們永遠不應該被用于不正常的條件
          設計API啟示:一個良好的API不應該強迫它的客戶為了正常的控制流而使用異常。對于邊界的判斷常用的有兩種方法:狀態測試方法和可被識別的返回值


          40、對于可以恢復的條件使用被檢查的異常,對于程序錯誤使用運行時異常
           Thowable(可拋出異常)有三種結構:被檢查的異常(checked exception)、運行時異常(run-time exception)和錯誤(error)
          如果期望調用者能夠恢復,那么,對于這樣的條件應該使用被檢查的異常
          運行時異常和錯誤,不需要也不應該是被捕獲的拋出物
          用運行時異常來指明程序錯誤
          對于被檢查的異常,提供一些輔助方法是非常重要的,通過這些方法,調用者可以獲得一些有助于恢復的信息


          41、避免不必要地使用被檢查的異常

          42、盡量使用標準異常
                


          43、拋出的異常要適合于相應的抽象
          高層的實現應該捕獲低層的異常,同時導出一個可以按照高層抽象進行解釋的---異常轉譯
          低層的異常對于調試該異常被撥出的情形非常有幫助的話,可以使用異常鏈接。即低層的異常被高層的異常保存起來,并且高層的異常提供一個公有的訪問方法來獲得低層異常

          44、每個異常的拋出都必須有文檔

          45、在細節消息中包含失敗--捕獲信息
          為了捕獲失敗,一個異常的的字符串表示應該包含所有“對異常有貢獻”的參數和域的值
          在異常構造函數中以參數形式引入這些信息


          46、努力使失敗保持原子性
          一個失敗方法調用應該使用對象保持“它在被調用之前的狀態” ---failure atomic
          幾種解決方法:在執行操作之前檢查參數的有效性
          調整計算機過程,使得任何可能會失敗的計算部分發生在對象狀態被修改之前
          編寫一段恢復代碼
          在對象上臨時都拷貝一份,當操作完成之后把臨時拷貝中的結果復制給原來的對象。如:Collections.sort

          47、不要忽略異常
          寫上try catch塊

          posted on 2011-02-12 18:02 XXXXXX 閱讀(254) 評論(0)  編輯  收藏 所屬分類: Programing

          主站蜘蛛池模板: 福泉市| 石台县| 谷城县| 南华县| 连山| 苏尼特左旗| 江都市| 大方县| 图们市| 台东县| 凉山| 汾阳市| 阜新市| 安阳县| 乌什县| 葵青区| 林西县| 布尔津县| 闻喜县| 龙井市| 铁岭市| 翼城县| 荥经县| 洞口县| 从化市| 建德市| 广丰县| 旌德县| 安塞县| 华宁县| 墨脱县| 通化市| 怀来县| 临洮县| 弥渡县| 长治县| 舟山市| 巫山县| 西林县| 饶阳县| 枞阳县|