拾貝殼

          走過的路
          隨筆 - 39, 文章 - 1, 評論 - 14, 引用 - 0
          數(shù)據(jù)加載中……

          關于異常Exception

          1。什么是異常
          ???異常是一種狀態(tài),是程序出現(xiàn)了符合該異常條件的一種狀態(tài)。因此,他也可以說成是一種條件。
          2。為什么要捕獲異常
          ? 捕獲異常是為了對程序中出現(xiàn)的某種狀況進行處理。如果有異常而沒有捕獲,異常將會向上一層傳播,最終導致線程在此中止。
          3。什么是check異常和unchecked異常
          ? uncheck異常一般是RuntimeException.出現(xiàn)這類異常,編譯器不會強制要用戶去捕獲(當然你可以捕獲)。?? 編譯器會強制要求用戶對checked異常進行捕獲并作出一定的處理。
          4。為什么不推薦捕獲頂層異常(Exception)
          ? 程序中會發(fā)生各種各樣的異常。除非你的程序是個終端(一個業(yè)務的終點),否則不推薦捕獲頂層異常。
          ?在程序的中間環(huán)節(jié)捕獲所有異常毫無意義,并有可能導致流程上的隱患。比如,出現(xiàn)某種異常后,期望線程就此結束,不去做下面的工作,但是如果在中間環(huán)節(jié)對頂層異常進行了非法處理,程序有可能會運行下去,將導致不可控的錯誤。
          5。為什么要自定義異常
          ?自定義異常是為了設置異常鏈的起點。一般情況下,我們都是允許每個程序員看到所有的異常信息,這個時候大多數(shù)都是把下一層的異常直接重擲到上一層。然而在多層次的結構中,我們有時候需要隱藏底層異常(這種異常的信息很多,很枯燥),而給消費者提供一個更為直觀的異常,這個時候我們需要自定義異常。有的異常類jdk已經(jīng)給我們提供,比如常用的IllegalArgumentException。如果你想在此再作包裝,你可以創(chuàng)建自己的異常類。如此,消費者將以此異常作為異常鏈的起點。
          6。為什么要重擲異常
          ?重擲異常是處理異常的一種方式。在捕獲了某種異常后,用戶可能不希望在這一層做出裁決,或者即使做出了一定的處理,但仍然需要向上一層報告,因此需要重擲異常。
          7。異常機制。
          ?? 一旦某個點發(fā)生異常,這個點下面和catch語句之間的代碼將不會被執(zhí)行。因此,異常是一種中止流程的很有效的機制。
          ?? 關于異常,在effective java中提到“異常轉(zhuǎn)譯”和“異常連接”的概念。本人傾向于用“異常轉(zhuǎn)譯”,前提是要配置log4j,并作詳細的日志紀錄。

          posted on 2006-06-29 11:40 binge 閱讀(1407) 評論(1)  編輯  收藏 所屬分類: J2SE

          評論

          # re: 關于異常Exception  回復  更多評論   

          我上大話西游2 每次都是說你當前環(huán)境保存信息不成功
          2008-09-02 11:31 | 樊志程
          主站蜘蛛池模板: 五大连池市| 甘谷县| 博客| 长葛市| 资溪县| 白河县| 康马县| 肇州县| 蒙山县| 潞西市| 水富县| 南召县| 浦江县| 巨鹿县| 晋宁县| 锡林浩特市| 鸡泽县| 惠水县| 敖汉旗| 阳西县| 汾阳市| 尼玛县| 东乌珠穆沁旗| 甘谷县| 和顺县| 宁陵县| 丹棱县| 海晏县| 江山市| 芦溪县| 蓝山县| 巴塘县| 巴东县| 扶沟县| 南城县| 山西省| 共和县| 临高县| 平江县| 资溪县| 图木舒克市|