【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中搜集檢視可能的返回碼列表
參考資料:
相關推薦
【VS】VS開發中遇到的問題的總結
包含 erro 問題 dir pre x64 blank 解決 直接 1. VS中經常會出現無法解析的外部符號,還有LINK ERROR 2019等 這類問題如果檢查代碼沒有錯誤,很大概率就是lib文件錯誤。調試程序找出問題函數,再找出問題函數使用到的lib文件,在項
Java中常用的異常處理情況及關於開發中異常處理的建議
cloneabl 軟件 完整性 內置 加載類 異常信息 dstat 應用程序 dsta 本周四老師由一個簡單程序將問題引出,講授了Java中異常處理的情況。根據課件內容及上網查閱資料,將關於JAVA項目中的常用的異常處理情況總結如下: 首先什麽是異常(Exception
【筆記】Android開發中從EditText中獲取數字
xml檔案中 <EditText android:id="@+id/editText_age" android:layout_width="match_p
【原】webapp開發中相容Android4.0以下版本的css hack
話說現在的手機型號越來越多,主要還是android和ios這2個巨頭稱霸了江湖,而他們自帶的瀏覽器核心是webkit,那對於做移動網頁開發的同事來說,一般只要做好webkit核心瀏覽器的展現效果就行了,看起來很簡單,其實背後還有一個大坑等著你。 雖說是webkit核心,但頁面的展現效果還會受到自身系統的影響
【Android】ListView開發中Adapter使用Activity中的方法
最近在做一個專案,本來只做一塊,後來需求有所變化,變成不確定欄數了,有時一塊,有時兩塊,或者更多,我就想引入ExpandableListView(以下簡稱listview),引入這個控制元件對我也是個
【Django】Django開發中的日誌輸出
開發環境:Ubuntu16.04+Django 1.11.9+Python2.7 一:使用自定義函式輸出日誌到log檔案: import time def print_log(log): file_obj = open('/tmp/f
【Web】Web開發中的異常處理方案
我認為最合理的做法: 1、dao層不捕獲異常、不丟擲異常:spring框架將底層的資料庫checked異常封裝成unchecked異常了 2、service層捕獲異常,並丟擲自定義unchecked異常,異常中不定義狀態碼:checked異常預設情況事務不會回滾 3、controller層捕獲異常,並丟擲自定
【webpack外掛使用】在開發中快速掌握並使用Webpack構建web應用程式
1.webpack-dev-server外掛的基本使用 入門程式 const path = require('path'); // 匯出一個Webpack的配置物件(通過node中的模組操作,向外暴露了一個配置物件) module.exports = { // 需要在這裡手動指定入口
【Python】 Web開發框架的基本概念與開發的準備工作
世紀 依賴包 ade 並不是 模板 界面 inux tar cal Web框架基本概念 現在再來寫這篇文章顯然有些馬後炮的意思。不過正是因為已經學習了Flask框架, 並且未來計劃學習更加體系化的Django框架,在學習過程中碰到的很多術語等等,非常有必要通過這樣一篇
【分享】Web前端開發第三方插件大全
slim 語法 top 配件 svg 上下文菜單 meta 時序圖 nio 收集整理了一些Web前端開發比較成熟的第三方插件,分享給大家。 ******************************************************************
【 分類 】- web開發
專欄達人 授予成功建立個人部落格專欄
循序漸進學.Net Core Web Api開發系列【1】:開發環境
系列目錄 一、本篇概述 本篇不打算描述如何通過Visual Studio建立一個專案之類的話題,主要描述以下內容: 1、使用NuGet和Bower引入第三方庫 2、Linux下安裝執行環境 3、關於安裝虛擬機器時碰到的網路設定的問題 實驗環境:Windows 10 ,Visual S
【PHP】解析PHP中的錯誤和異常處理
not tty 不支持 版本 adding all 操作 lin ttr 目錄結構: contents structure [-] 錯誤級別 自定義處理器 設置異常日誌 自定義異常類 在這篇文章中,筆者將會闡述PHP中的異常處理,希望能夠對你
【web】HTTP頭 中ETag
REST筆記(五):你應該知道的HTTP頭——ETag 在HTTP1.1規範中,新增了一個HTTP頭資訊:ETag。對Web開發者來說,它是一個非常重要的資訊。它是用作快取使 用的兩個主要的頭資訊之一 (另一個是Expires)。除此之外,在REST架構中,
【python】web後臺開發工程師-本科
轉自部落格園-削微寒的程式設計師之路 http://www.cnblogs.com/xueweihan/p/4782634.html 主要內容:本科生,python,深圳 心得: 1、堅持發現樂趣 2、申請github賬號,積累專案 3、多看職位描述並總結
【轉載】web.xml中load-on-startup的作用
轉載地址:http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html 如下一段配置,熟悉DWR的再熟悉不過了: < servlet > < servlet-name&g
【5min+】AspNet Core中的全域性異常處理
## **系列介紹** 【五分鐘的dotnet】是一個利用您的碎片化時間來學習和豐富.net知識的博文系列。它所包含了.net體系中可能會涉及到的方方面面,比如C#的小細節,AspnetCore,微服務中的.net知識等等。 5min+不是超過5分鐘的意思,"+"是知識的增加。so,它是讓您花費5分鐘以下的
【EasyUI總結】EasyUI開發中遇到的坑
spa columns .com 字段名 html mil span 個數字 style 普遍:1.easyui在書寫鍵值對的時候要註意是否要加引號,在需要加引號的地方不加則無法渲染;datagrid數據網格:1.datagrid默認請求方式是post,如果要使用分頁功能p
【轉】web前端到底怎麽學?幹貨資料!
工程師 align develop 不用 ctu blog b前端開發 現實 book 一般據我經驗,在喜歡並且決定和她戀愛之前,我都會做一下充分準備和調查,有必要了解和研究清楚 ‘她’ 的幾個特性和習慣 web前端的基本工作職責 和基礎技能(要清楚) web前端的分類和
【ArcGIS】Web AppBuilder For ArcGIS 配置使用
界面 logs pid builder arcgis 9.png alt uil nbsp 一、Portal註冊 2、Web AppBuilder配置 輸入https://XXXX.YYYY.com.cn:3344/webappbuil