Java提供了兩類主要的異常:runtime exceptionchecked exception。所有的checked exception是從java.lang.Exception類衍生出來的,而runtime exception則是從Java.lang.RuntimeExceptionjava.lang.Error類衍生出來的。

          從邏輯的角度來說,checked exceptionsruntime exception是有不同的使用目的的。checked exception用來指示一種調(diào)用方能夠直接處理的異常情況。而runtime exception則用來指示一種調(diào)用方本身無法處理或恢復(fù)的程序錯誤。

          框架定義了一個異常基類ApplicationException是屬于checked exceptions類型主要有以下幾個功能:

          1、            異常自底向上拋出統(tǒng)一處理,減少處理代碼:

          傳統(tǒng)(過程式)方式編程,采用返回參數(shù)告訴調(diào)用的函數(shù)被調(diào)用的函數(shù)出現(xiàn)錯誤,所以在調(diào)用函數(shù)里面要加入很多的if從句來判斷各個被調(diào)用函數(shù)是否正確返回值,代碼充斥了大量的大括號。采用異常機制,發(fā)生異常的位置包裝成自定義的應(yīng)用異常然后向上拋出,上面的各層均不用處理直接拋出到統(tǒng)一異常處理的MainController里面即可,由統(tǒng)一的類來處理

          2、          異常統(tǒng)一編號,用戶看到統(tǒng)一的處理信息:

          每個異常都可以確定編號,并將編號與提示信息維護在數(shù)據(jù)庫中,頁面只顯示統(tǒng)一維護的錯誤信息,這樣就不會讓錯誤信息編程開發(fā)人員隨手寫的不規(guī)范而且難以理解的信息,造成用戶感覺系統(tǒng)難以使用。

          3、            異常信息記錄到錯誤日志中方便追蹤異常位置:

          統(tǒng)一處理程序抓取異常,并將異常信息記錄日志。調(diào)試階段還可以在控制臺信息中打出異常堆,方便開發(fā)人員快速定位異常發(fā)生位置。

          4、            根據(jù)獲取異常AOP聲明式事務(wù)控制進(jìn)行回滾操作:

          整個開發(fā)使用聲明式的事務(wù),何時回滾就取決與應(yīng)用異常的拋出。

          配置如下:

          <property name="transactionAttributes">

                               <props>

                                      <prop key="insert*">

                                             PROPAGATION_REQUIRED,-ApplicationException

                                      </prop>

                               </props>

          </property>

          應(yīng)用異常基類如下圖:

          應(yīng)用異常.bmp

          其它異常都繼承于基類ApplicationException,主要包含錯誤編號屬性(errorNumber)、異常信息(errorMessage)、異常跟蹤(stackTrace)。以便實現(xiàn)上述功能。


          Feedback

          # re: 基于J2EE輕量級容器構(gòu)件框架四、異常處理  回復(fù)  更多評論   

          2010-03-01 15:32 by xfds
          fdsf

          # re: 基于J2EE輕量級容器構(gòu)件框架四、異常處理  回復(fù)  更多評論   

          2010-03-01 15:34 by qsy
          我看了你對異常的處理,我還是沒看明白,我的qq是553650958,希望得到你的指點,謝謝!

          posts - 9, comments - 27, trackbacks - 0, articles - 19

          Copyright © publisher luo

          主站蜘蛛池模板: 江山市| 会宁县| 峨眉山市| 金昌市| 塘沽区| 巴中市| 郎溪县| 东乡| 益阳市| 伽师县| 无棣县| 巴中市| 镇坪县| 司法| 庄浪县| 晋州市| 股票| 吉隆县| 宜兰市| 贡山| 乃东县| 东方市| 遂平县| 伊春市| 天水市| 曲靖市| 武穴市| 兴化市| 辛集市| 湛江市| 周宁县| 辽阳县| 张掖市| 依兰县| 利川市| 灵台县| 河北区| 凤城市| 阜南县| 赣州市| 武威市|