日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

系统中异常公共处理模块 in spring boot

發(fā)布時間:2023/12/18 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 系统中异常公共处理模块 in spring boot 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

?

?

最近在用spring boot 做微服務(wù),所以對于異常信息的 【友好展示】有要求,我設(shè)計(jì)了兩點(diǎn):

一、 在業(yè)務(wù)邏輯代碼中,異常的拋出 我做了限定,一般只會是三種:           

1. OmcException //自己寫的異常包裝類 ,主要用來處理業(yè)務(wù)異常 2. IllegalArgumentException //參數(shù)異常類,其實(shí)這個可以不要,只是在我的系統(tǒng)中,我想把參數(shù)異常和業(yè)務(wù)異常做區(qū)分 3. 其他的異常,都按Exception拋 //因?yàn)樗某橄髮哟巫罡?#xff0c;所以在系統(tǒng)中按優(yōu)先級最低進(jìn)行處理,除非必要(如容器級錯誤)否則盡量避免

? ? OmcException的構(gòu)造是這樣的:

  

?

這里留個鉤子:

為什么要在拋異常時,帶上 日志的信息 + 輸入?yún)?shù)的信息?

       —— 因?yàn)?#xff0c;我希望在業(yè)務(wù)邏輯代碼中,對于這些異常的處理,最好就是一行代碼,類似于:打印error日志 + 向用戶返回友好的錯誤信息。我想做一個公共的處理模塊。讓業(yè)務(wù)邏輯代碼盡可能的清爽一些。

?

對異常的進(jìn)行try-catch包裝的過程是:

? ??

對異常的拋出做限定,給個總結(jié)就是:盡量包裝成我們自己封裝的異常包裝類。

? ? 為什么呢? 這是在設(shè)計(jì)上做限定,那么后進(jìn)的程序員,如果不按照這個規(guī)范走,功能是做不出來的。這個也是架構(gòu)設(shè)計(jì)的意義,不要隨便動個嘴就好,還要把柵欄建好。

?

二、 在公共的業(yè)務(wù)邏輯處理代碼中,異常的接收(或者說異常的路由)?我做了限定,一般是:

1. 先匹配業(yè)務(wù)異常。業(yè)務(wù)異常一般向用戶提示什么呢? 錯誤編碼 + 錯誤提示信息。

2. 其次,匹配參數(shù)異常,這些參數(shù)異常可能是我們自己做參數(shù)校驗(yàn)拋出來的,也有可能是spring mvc 拋出來的,所以還沒有到我們的業(yè)務(wù)邏輯代碼中。

  參數(shù)異常一般提示什么呢? 錯誤提示信息(包含哪個字段出現(xiàn)了錯誤)

3. 根異常Exception,這里捕獲的異常,可能是我們不愿意處理的 數(shù)據(jù)庫異常,也有可能是容器報(bào)的異常(當(dāng)然,這些異常我們并不能捕獲所有的。)這里要做打error日志的處理。

  一個設(shè)計(jì)良好的系統(tǒng),最好是不要走進(jìn)這個分支,畢竟分析error日志不是一件多么光榮的事兒。

spring boot中,公共異常處理模塊代碼結(jié)構(gòu)是:

?

然后是,打印error日志 + 向用戶返回友好的錯誤信息

?

?

?

?

?

?

?

       

轉(zhuǎn)載于:https://www.cnblogs.com/haore147/p/6088829.html

總結(jié)

以上是生活随笔為你收集整理的系统中异常公共处理模块 in spring boot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。