1. 程式人生 > >【Web】Web開發中的異常處理方案

【Web】Web開發中的異常處理方案

我認為最合理的做法:

1、dao層不捕獲異常、不丟擲異常:spring框架將底層的資料庫checked異常封裝成unchecked異常了

2、service層捕獲異常,並丟擲自定義unchecked異常,異常中不定義狀態碼:checked異常預設情況事務不會回滾

3、controller層捕獲異常,並丟擲自定義異常,異常類中定義需要返回的HTTP狀態碼:API文件一眼就可以明確所有的返回碼

4、exceptionHandler中統一處理所有異常

但是,這樣會造成controller比較臃腫,

所以,很多專案使用偷懶的辦法,service中丟擲的異常定義狀態碼,controller不捕獲保持程式碼簡潔,由exceptionHandler統一處理

這樣同時也會有問題:

1、service中的狀態碼最好是HTTP的狀態碼

2、如果需要提供API文件,需要從service中搜集檢視可能的返回碼列表

參考資料: