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

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

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

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

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

          2、          異常統一編號,用戶看到統一的處理信息:

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

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

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

          4、            根據獲取異常AOP聲明式事務控制進行回滾操作:

          整個開發使用聲明式的事務,何時回滾就取決與應用異常的拋出。

          配置如下:

          <property name="transactionAttributes">

                               <props>

                                      <prop key="insert*">

                                             PROPAGATION_REQUIRED,-ApplicationException

                                      </prop>

                               </props>

          </property>

          應用異常基類如下圖:

          應用異常.bmp

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


          Feedback

          # re: 基于J2EE輕量級容器構件框架四、異常處理  回復  更多評論   

          2010-03-01 15:32 by xfds
          fdsf

          # re: 基于J2EE輕量級容器構件框架四、異常處理  回復  更多評論   

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

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

          Copyright © publisher luo

          主站蜘蛛池模板: 广宗县| 云南省| 武胜县| 汕尾市| 宜黄县| 扎囊县| 辽源市| 建瓯市| 都匀市| 嘉峪关市| 永清县| 洪洞县| 乌拉特后旗| 静海县| 阳原县| 平山县| 班戈县| 万宁市| 乐山市| 宜城市| 宜兴市| 鄂托克旗| 九龙城区| 荃湾区| 台前县| 绥中县| 那坡县| 泗阳县| 炉霍县| 嘉善县| 瓮安县| 涿州市| 南丰县| 曲靖市| 大同市| 普兰店市| 东乡县| 孟津县| 淮阳县| 泸溪县| 阆中市|