Posted on 2005-11-18 10:27
publisher luo 閱讀(1845)
評論(2) 編輯 收藏 所屬分類:
框架設計及應用
Java提供了兩類主要的異常:runtime
exception和checked exception。所有的checked exception是從java.lang.Exception類衍生出來的,而runtime exception則是從Java.lang.RuntimeException或java.lang.Error類衍生出來的。
從邏輯的角度來說,checked exceptions和runtime
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>
|
應用異常基類如下圖:

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