@OverWrite BlogJava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks
                  捕獲了異常卻不作任何處理,可以算得上Java編程中的殺手。從問題出現的頻繁程度和禍害程度來看,它也許可以和C/C++程序的一個惡名遠播的問題相提并論??不檢查緩沖區是否已滿。如果你看到了這種丟棄(而不是拋出)異常的情況,可以百分之九十九地肯定代碼存在問題。
                  錯誤在于,異??偸且馕吨承┦虑椴粚帕?,或者說至少發生了某些不尋常的事情,我們不應該對程序發出的求救信號保持沉默和無動于衷。調用一下printStackTrace算不上“處理異常”。不錯,調用printStackTrace對調試程序有幫助,但程序調試階段結束之后,printStackTrace就不應再在異常處理模塊中擔負主要責任了。 
                  那么,應該怎樣改正呢?主要有四個選擇:

            1、處理異常。針對該異常采取一些行動,例如修正問題、提醒某個人或進行其他一些處理,要根據具體的情形確定應該采取的動作。再次說明,調用printStackTrace算不上已經“處理好了異常”。

            2、重新拋出異常。處理異常的代碼在分析異常之后,認為自己不能處理它,重新拋出異常也不失為一種選擇。

            3、把該異常轉換成另一種異常。大多數情況下,這是指把一個低級的異常轉換成應用級的異常(其含義更容易被用戶了解的異常)。

            4、不要捕獲異常。

            結論一:既然捕獲了異常,就要對它進行適當的處理。不要捕獲異常之后又把它丟棄,不予理睬。
          posted on 2008-01-09 14:46 vesung 閱讀(279) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 惠水县| 伊通| 杨浦区| 乌兰县| 永宁县| 小金县| 辽阳县| 安多县| 清徐县| 清丰县| 红河县| 福贡县| 神木县| 宁武县| 北安市| 当涂县| 桦南县| 静海县| 玉树县| 普定县| 遂溪县| 盖州市| 桃园县| 琼海市| 怀远县| 赤水市| 霍山县| 建水县| 天气| 美姑县| 秦皇岛市| 天镇县| 奉新县| 华池县| 永济市| 尚志市| 景德镇市| 威海市| 茂名市| 湘潭县| 尼勒克县|