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