Posted on 2006-02-17 00:08
云自無心水自閑 閱讀(447)
評論(0) 編輯 收藏 所屬分類:
Java
一個統(tǒng)一的異常層次結(jié)構(gòu)對于提供服務(wù)抽象是必需的. 最重要的就是org.springframework.dao.DataAccessException以及其子類了. 需要強(qiáng)調(diào)的是Spring的異常機(jī)制重點(diǎn)在于應(yīng)用編程模型. 與SqlException和其他數(shù)據(jù)存取API不同的是: Spring的異常機(jī)制是為了讓開發(fā)者使用最少, 最清晰的代碼.
DataAccessException和其他底層異常都是非檢查性異常(unchecked exception). spring的原則之一就是基層異常就應(yīng)該是非檢查性異常. 原因如下:
1. 基層異常通常來說是不可恢復(fù)的.
2. 檢查性異常將會降低異常層次結(jié)構(gòu)的價值.如果底層異常是檢查性的, 那么就需要在所有地方添加catch語句進(jìn)行捕獲.
3.try/catch代碼塊冗長混亂, 而且不增加多少價值.
使用檢查異常理論上很好, 但是實(shí)際上好象并不如此.
Hibernate3也將從檢查性異常轉(zhuǎn)為非檢查性異常.