我知道有很多已經被周圍的異常處理的討論,不過我需要一些專門針對我的情況的意見。的Java拋出異常VS返回響應漁獲
我目前工作的一個Spring MVC
應用與Controller->Services->DAO
層。服務類主要捕獲兩種例外HibernateException
和IOException
。
HibernateException
因爲服務需要執行回滾,如果事務沒有成功,並且IOException
,因爲它是一個未經檢查的異常,需要被捕獲或拋出,我更喜歡第一個選項。
現在會是什麼處理這些進一步向上堆疊中的一個更好的辦法:
- 我應該重新拋出這些異常的控制器和控制器的
ExceptionHandler
發送一個HTTP錯誤代碼500 - 或在catch塊創建正常
JSON response
對象,設置status=failure
和相應的錯誤信息,這回控制器?
你應該和你的觀點去1. –
'在技術上,IOException'不是一個未經檢查的異常;你在這裏意味着什麼? – fge
如果不能處理它們,我會捕獲檢查的異常並將它們重新包裝爲自定義運行時異常。 –