專注技術,奮斗不止

          程序員-小倪的個人博客

          java異常處理思路

          1.異常處理相對于返回錯誤代碼的一個最大優點在于,異常可以被自動傳遞,這樣,在編程時異常更加難以被忽視。

          2.通常,只在最上層(一般是UI層)捕捉異常。如果要在其它層捕捉異常,除非是下列情況之一:
           (1)能夠處理該異常,或者
           (2)能夠忽略該異常,或者
           (3)需要轉換該異常為其它特定異常后拋出新異常

          3.UI層捕獲異常后,可以
           (1)將無關緊要的異常忽略。
           (2)將異常轉換為錯誤信息展現給用戶。
           (3)如果是重大異常,可以考慮終止應用程序。

          4.最上層(一般是UI層)不得拋出新的異常;最上層需要捕捉所有異常,否則異常會直接導致程序終止,這將是非常不好的用戶體驗。

          5.可以在非最上層拋出自定義異常。如果是自定義異常,請保證其是可序列化的,并且保證其實現了Exception的三個構造函數。

          6.異常的拋出與截獲需要很多的cpu時間,請謹慎的使用異常。

          7.在可能拋出異常的地方,如果需要,請確保使用finally進行資源清理,而無論此處是否捕捉了異常。

          8.在一個catch塊中的代碼都應該至少部分地處理了所捕捉的異常。否則,就不要使用catch塊。

          9.從構造函數中拋出異常。
            因為構造函數沒有返回值,所以沒有簡單的方法來想構造函數的調用者發出構造失敗的信號,這時便可以通過拋出異常來做到。比如構造參數與指定條件不符時,就拋出一個異常。 

          10.在以上前提的保證下,可以在非最上層使用AOP截獲(intercept)異常而進行日志記錄,這樣通過日志記錄,我們可以了解系統的  運行狀態。在軟件實現中,異常和日志都是重要的質量保證手段,異常和日志總是同時出現的。
            可以說,異常是日志記錄的重要/主要組成部分。

          閱讀全文
          類別:Java 查看評論

          posted on 2012-02-24 02:30 ProgramerNi 閱讀(290) 評論(0)  編輯  收藏 所屬分類: J2EE

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 西昌市| 正镶白旗| 黄山市| 临湘市| 平谷区| 平利县| 遂昌县| 湘潭县| 科技| 和林格尔县| 乌什县| 宜兴市| 如东县| 宜丰县| 铅山县| 松溪县| 长海县| 连南| 山丹县| 徐闻县| 当阳市| 南昌市| 崇文区| 蕲春县| 达拉特旗| 琼结县| 东源县| 洪洞县| 灵台县| 延吉市| 府谷县| 东台市| 赫章县| 锡林浩特市| 松潘县| 兰州市| 青海省| 屏东县| 偏关县| 南安市| 昌乐县|