@OverWrite BlogJava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 29 評(píng)論 :: 0 Trackbacks
                  捕獲了異常卻不作任何處理,可以算得上Java編程中的殺手。從問題出現(xiàn)的頻繁程度和禍害程度來看,它也許可以和C/C++程序的一個(gè)惡名遠(yuǎn)播的問題相提并論??不檢查緩沖區(qū)是否已滿。如果你看到了這種丟棄(而不是拋出)異常的情況,可以百分之九十九地肯定代碼存在問題。
                  錯(cuò)誤在于,異常總是意味著某些事情不對(duì)勁了,或者說至少發(fā)生了某些不尋常的事情,我們不應(yīng)該對(duì)程序發(fā)出的求救信號(hào)保持沉默和無動(dòng)于衷。調(diào)用一下printStackTrace算不上“處理異常”。不錯(cuò),調(diào)用printStackTrace對(duì)調(diào)試程序有幫助,但程序調(diào)試階段結(jié)束之后,printStackTrace就不應(yīng)再在異常處理模塊中擔(dān)負(fù)主要責(zé)任了。 
                  那么,應(yīng)該怎樣改正呢?主要有四個(gè)選擇:

            1、處理異常。針對(duì)該異常采取一些行動(dòng),例如修正問題、提醒某個(gè)人或進(jìn)行其他一些處理,要根據(jù)具體的情形確定應(yīng)該采取的動(dòng)作。再次說明,調(diào)用printStackTrace算不上已經(jīng)“處理好了異常”。

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

            3、把該異常轉(zhuǎn)換成另一種異常。大多數(shù)情況下,這是指把一個(gè)低級(jí)的異常轉(zhuǎn)換成應(yīng)用級(jí)的異常(其含義更容易被用戶了解的異常)。

            4、不要捕獲異常。

            結(jié)論一:既然捕獲了異常,就要對(duì)它進(jìn)行適當(dāng)?shù)奶幚怼2灰东@異常之后又把它丟棄,不予理睬。
          posted on 2008-01-09 14:46 vesung 閱讀(278) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 张北县| 鄄城县| 隆昌县| 博乐市| 汕尾市| 中江县| 东丰县| 横山县| 葵青区| 德化县| 二手房| 汤阴县| 大方县| 聂拉木县| 英德市| 湖北省| 晋宁县| 吉木萨尔县| 安新县| 曲松县| 陆河县| 苏州市| 大安市| 英吉沙县| 甘洛县| 莆田市| 开鲁县| 楚雄市| 平阳县| 新民市| 诏安县| 文山县| 页游| 措勤县| 承德县| 芜湖县| 桂林市| 凭祥市| 佛冈县| 八宿县| 楚雄市|