憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks

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

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

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

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

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

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

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

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

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

          10.在以上前提的保證下,可以在非最上層使用AOP截獲(intercept)異常而進行日志記錄,這樣通過日志記錄,我們可以了解系統(tǒng)的  運行狀態(tài)。記不起在哪里看到過這樣一句話:在軟件實現(xiàn)中,異常和日志都是重要的質(zhì)量保證手段,異常和日志總是同時出現(xiàn)的。
            可以說,異常是日志記錄的重要/主要組成部分。

          轉(zhuǎn):http://zhuweisky.cnblogs.com/archive/2005/09/10/233961.html
          posted on 2008-06-19 08:52 二胡 閱讀(141) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 鄄城县| 甘肃省| 青州市| 崇义县| 淮北市| 仁化县| 宁河县| 平武县| 山丹县| 北辰区| 读书| 神池县| 积石山| 台东县| 阿克陶县| 东阿县| 长岭县| 藁城市| 贵阳市| 德兴市| 丹凤县| 龙岩市| 通道| 雷州市| 霸州市| 临颍县| 高阳县| 瑞金市| 富宁县| 广宗县| 云浮市| 买车| 黑龙江省| 德江县| 张掖市| 林周县| 平罗县| 库伦旗| 陵水| 吐鲁番市| 威宁|