我正在閱讀一本Spring書籍來學習Spring。經歷了關於JDBCTemplate的部分,我驚訝地發現Spring不同地處理大多數SQLException異常。Spring在JDBC模板中執行異常處理
例如,所有檢查的異常都轉換爲未經檢查的異常。這究竟有什麼好處?
根據我的經驗,大部分SQL異常都應該被處理。例如,我們有一個與Oracle PL/SQL過程交談的應用程序。對PL/SQL過程的調用可能會返回ORA-01403: no data found
異常。這種異常是您通常通過向用戶顯示錯誤消息而恢復的異常。例如搜索結果沒有返回任何內容。
如果所有的異常都未被選中,這種類型的檢查異常如何在Spring中處理,即Spring不會強迫你處理它們?
我知道你可以捕獲RuntimeExceptions,但我非常喜歡你被迫處理檢查異常的想法。將某些已檢查的異常轉換爲未經檢查的異常會帶來什麼好處?
你不需要在DAO中處理它,你可以聲明你的DAO接口爲'throws SQLException'(或任何你希望你的DAO引發的異常)。 – gpeche 2012-01-15 20:05:30
是的,但你仍然需要在某個地方處理它。即使你在處理方面,仍然拋出聲明保持,你必須處理你永遠不會得到的異常... – 2012-01-15 20:56:55
那麼你*總是*必須處理異常,除了在開發中。否則你的程序將以不受控制的方式終止。 – gpeche 2012-01-15 21:55:00