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

我認爲最合理的作法:html

一、dao層不捕獲異常、不拋出異常:spring框架將底層的數據庫checked異常封裝成unchecked異常了java

二、service層捕獲異常,並拋出自定義unchecked異常,異常中不定義狀態碼:checked異常默認狀況事務不會回滾web

三、controller層捕獲異常,並拋出自定義異常,異常類中定義須要返回的HTTP狀態碼:API文檔一眼就能夠明確全部的返回碼spring

四、exceptionHandler中統一處理全部異常數據庫

 

可是,這樣會形成controller比較臃腫,segmentfault

因此,不少項目使用偷懶的辦法,service中拋出的異常定義狀態碼,controller不捕獲保持代碼簡潔,由exceptionHandler統一處理框架

 

這樣同時也會有問題:less

一、service中的狀態碼最好是HTTP的狀態碼ssh

二、若是須要提供API文檔,須要從service中搜集查看可能的返回碼列表阿里雲

 

參考資料:

java web service controller 異常_百度搜索

 Java應用後臺開發設計之異常封裝(一) - - ITeye博客

 java web項目總體異常處理機制 - 上善若水任方圓 - ITeye博客

 使用Spring MVC統一異常處理實戰 - CSDN博客

 如何優雅的處理異常(java)? - 知乎

 Java-異常機制詳解以及開發時異常設計的原則要求 - CSDN博客

 Java異常處理和設計 - 海 子 - 博客園

 java service 層 異常_百度搜索

 Java Web 項目(Spring 項目)異常處理問題 - V2EX

 Java在Service層異常封裝-博客-雲棲社區-阿里雲

 java - 關於Service層異常封裝的問題 - SegmentFault 思否

 關於Service層異常封裝的問題 - 小茗同窗的回答 - SegmentFault 思否

 java web項目總體異常處理機制 - 上善若水任方圓 - ITeye博客

 如何優雅的處理異常(java)? - 知乎

 web開發-java異常從業務層集中拋出,是否是每一個控制層方法都要try catch——CSDN問答頻道

 java - 到底應該在action裏面捕捉異常仍是在service裏面捕捉異常? - SegmentFault 思否

 java - 請問業務層方法是拋出一個異常好仍是返回一個結果更好 - SegmentFault 思否

 service層異常的處理 - - ITeye博客

 Java在Service層異常封裝 - EasonJim - 博客園

 (5)java - 關於Service層異常封裝的問題 - SegmentFault 思否

相關文章
相關標籤/搜索