精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go項目Error的統(tǒng)一規(guī)劃管理和處理策略

開發(fā) 項目管理
如果每一層都打日志,查詢?nèi)罩镜臅r候必然會有不少重復,當然這個見仁見智,多打點日志也沒錯總比不打日志,出問題了再打日志,等線上復現(xiàn)問題后再排查日志要強多了。

這一篇文章我們來探討一下怎么在項目初期提前規(guī)劃,把項目的各種Error統(tǒng)一管理起來,以及寫代碼遇到Error時在不同的代碼層我們應(yīng)該怎么處理它們。

圖片圖片


怎么把項目的Error管理起來

在聊怎么把Error管理起來之前我們先來聊一下為什么要管理Error,有Error就有Error唄,把信息返回給調(diào)用者不就行了?這里說的調(diào)用者指的是請求我們系統(tǒng)API的調(diào)用方。

乍一想好像確實沒毛病,但是咱們把眼光放到團隊開發(fā)和對接上。

其一:與咱們對接的系統(tǒng),判斷錯誤一般靠的都是錯誤響應(yīng)里的Code碼,如果同一個類型的錯誤你返回不同的錯誤碼,一兩個還好,如果十個八個估計對方就要過來找你們算帳了。

其二:既然一類錯誤的錯誤碼要統(tǒng)一,那每次都自己NewError再設(shè)置它的錯誤碼,這樣即使只有一個人開發(fā)這個項目,次數(shù)多了也會把錯誤碼寫錯的,更別提多個人一起開發(fā)的時候了。

所以就需要我們先把常見的能想到的錯誤預(yù)先定義出來。這也就是為什么咱們的項目在error模塊的code.go中預(yù)先定義了下面幾個基礎(chǔ)的錯誤。

var (
 Success            = newError(0, "success")
 ErrServer          = newError(10000000, "服務(wù)器內(nèi)部錯誤")
 ErrParams          = newError(10000001, "參數(shù)錯誤, 請檢查")
 ErrNotFound        = newError(10000002, "資源未找到")
 ErrPanic           = newError(10000003, "(*^__^*)系統(tǒng)開小差了,請稍后重試") // 無預(yù)期的panic錯誤
 ErrToken           = newError(10000004, "Token無效")
 ErrForbidden       = newError(10000005, "未授權(quán)") // 訪問一些未授權(quán)的資源時的錯誤
 ErrTooManyRequests = newError(10000006, "請求過多")
 ErrCoverData       = newError(10000007, "ConvertDataError") // 數(shù)據(jù)轉(zhuǎn)換錯誤
)

除了這些通用的錯誤之外,我們可以預(yù)先按照項目的模塊分配每個業(yè)務(wù)模塊錯誤的碼段。比如在未來的項目代碼中你會看到一些給業(yè)務(wù)模塊單獨定義的錯誤碼。

// 用戶模塊相關(guān)錯誤碼 10000100 ~ 1000199
var (
 ErrUserInvalid      = newError(10000101, "用戶異常")
 ErrUserNameOccupied = newError(10000102, "用戶名已被占用")
  ...
)

// 商品模塊相關(guān)錯誤碼 10000200 ~ 1000299
var (
 ErrCommodityNotExists = newError(10000200, "商品不存在")
 ErrCommodityStockOut  = newError(10000201, "庫存不足")
  ...
)

// 購物車模塊相關(guān)錯誤碼 10000300 ~ 1000399
var (
 ErrCartItemParam = newError(10000300, "購物項參數(shù)異常")
 ErrCartWrongUser = newError(10000301, "用戶購物信息不匹配")
  ...
)

到這里一直說的都是預(yù)先定義錯誤,那針對一些不知道什么類型的錯誤該怎么辦?比如在DAO層做了一下CRUD出現(xiàn)了Error,難道還要預(yù)先定義一個ErrDBQuery 之類的錯誤嗎?那項目用的中間件多了,Redis、MQ什么的都要預(yù)先定義錯誤嗎?

這里我給我的方案是,調(diào)用其他外部基礎(chǔ)組件出錯時,調(diào)用一個SDK方法出錯時,把底層錯誤包裝成項目的Error。

func Wrap(msg string, err error) *AppError {
 if err == nil {
  return nil
 }
 appErr := &AppError{code: -1, msg: msg, cause: err}
 return appErr
}

當你拿到一個error不確定它該是什么錯誤,你就用這個Wrap方法包裝成項目的App Error。

下一節(jié)我們封裝的統(tǒng)一接口響應(yīng)組件會使用下面的方法來獲取Error對應(yīng)的HTTP Code。

func (e *AppError) HttpStatusCode() int {
 switch e.Code() {
 case Success.Code():
  return http.StatusOK
 case ErrParams.Code():
  return http.StatusBadRequest
 case ErrNotFound.Code():
 ......
 default:
  return http.StatusInternalServerError
 }
}

不同代碼層該怎么處理Error

我們在寫代碼的時候為了保險,都愛在 error 判斷中打一條Error級別的日志,這樣好歹遇到錯誤了在日志中會留下痕跡,到了真需要排除問題的時候總比那些什么日志都不記錄的寫法要好多了。

很多時候我們遇到線上問題了,查半天最后實現(xiàn)沒辦法就加幾條日志部署上去觀察觀察情況,等同樣的錯誤發(fā)生了再去看新打的日志。

但是不知道大家有沒有發(fā)現(xiàn),如果你每遇到Error都打一條日志的話,那么這個錯誤信息在日志里的重復率時相當?shù)母撸l(fā)生了一個錯誤,好幾條日志都是這個錯誤信息,其實都是同一個錯誤,只不過這些日志是在調(diào)用邏輯的不同代碼層做被打進去的。

那么關(guān)于什么錯誤該記日志,什么不該記,有沒有什么好用的標準?不好意思沒有,全靠自己的悟性。。。。。。聽到這里是不是想罵人了。

這里分享一下國外論壇中經(jīng)常看到的 Only handle errors once的原則

Go程序錯誤處理的原則:

  • 程序底層 (Dao、基礎(chǔ)設(shè)施層) 拋出錯誤
  • 程序中層(領(lǐng)域服務(wù)層、應(yīng)用服務(wù)層)包裝錯誤
  • 程序上層(控制層) 記錄錯誤

如果每一層都打日志,查詢?nèi)罩镜臅r候必然會有不少重復,當然這個見仁見智,多打點日志也沒錯總比不打日志,出問題了再打日志,等線上復現(xiàn)問題后再排查日志要強多了。

還有一個原因就是Go的原生 Error 如果你不自己做自定義封裝確實能給咱們的有效信息很少,我們看到錯誤信息經(jīng)常是找半天才能找到原因。

責任編輯:武曉燕 來源: 網(wǎng)管叨bi叨
相關(guān)推薦

2024-12-11 09:13:00

2023-11-28 14:32:04

2021-01-07 15:22:06

智能交通智能網(wǎng)聯(lián)

2024-11-04 09:02:51

Go項目接口

2009-08-25 16:47:32

統(tǒng)一通信視頻會議策略規(guī)劃

2021-09-08 09:41:09

開發(fā)Go代碼

2016-11-15 09:44:21

大數(shù)據(jù)批處理流處理

2010-12-21 18:07:39

2024-11-06 09:23:32

2009-05-09 09:25:08

思科UCS產(chǎn)品

2025-03-31 00:29:44

2011-09-21 10:21:11

網(wǎng)絡(luò)管理網(wǎng)絡(luò)規(guī)劃無線網(wǎng)絡(luò)

2010-12-27 15:22:47

組策略

2011-08-25 15:16:52

電子政務(wù)政府IA服務(wù)器

2022-07-27 16:36:29

node.js前端

2024-10-28 09:04:38

Go項目客戶端

2011-10-19 09:57:11

2025-02-26 09:03:24

2022-05-07 10:09:01

開發(fā)Java日志

2020-07-10 08:07:29

機器學習
點贊
收藏

51CTO技術(shù)棧公眾號

色综合888| 日本天堂在线视频| 在线观看国产黄| 禁果av一区二区三区| 欧美色老头old∨ideo| 在线观看视频黄色| 性感美女一级片| 蜜桃91丨九色丨蝌蚪91桃色| 欧美大片在线看| 动漫精品一区二区三区| 日本在线观看网站| 成人午夜av影视| 国产精品人成电影在线观看| 国产女片a归国片aa| 色爱av综合网| 日韩欧美成人激情| 国产成人黄色网址| 欧美gv在线| 一区二区三区四区五区视频在线观看| 美脚丝袜一区二区三区在线观看| 国产精品系列视频| 狂野欧美一区| 欧美亚洲视频一区二区| 日本a级片视频| jizzjizz欧美69巨大| 亚洲国产精品美女| 午夜剧场在线免费观看| 亚洲天堂av影院| 亚洲欧美偷拍另类a∨色屁股| 欧美大陆一区二区| 日本高清视频www| 国产伦理精品不卡| 国产精品一区二区电影| 欧美啪啪小视频| 午夜欧美精品久久久久久久| 尤物yw午夜国产精品视频| 中文字幕乱码在线| 天堂av一区| 91精品国产色综合久久ai换脸| 欧在线一二三四区| 午夜久久中文| 欧美日韩另类字幕中文| 国产aaa免费视频| 日本高清成人vr专区| 中文字幕五月欧美| 在线视频91| 黄色网在线播放| 国产精品盗摄一区二区三区| 性欧美videosex高清少妇| 狠狠v欧美ⅴ日韩v亚洲v大胸| 99久久综合国产精品| 国产久一道中文一区| 亚洲精品视频网| 床上的激情91.| 国产精品青青草| 四虎永久在线观看| 91色视频在线| 女女同性女同一区二区三区91| 天堂在线资源库| 91网站黄www| 欧美极品日韩| 9色在线视频网站| 国产精品欧美久久久久无广告 | 婷婷成人综合| 亚洲精品一区二区三区婷婷月 | 国产黄色一区二区| 国产成+人+日韩+欧美+亚洲| 99精彩视频在线观看免费| 亚洲黄色在线免费观看| 成人毛片视频在线观看| 精品国产一区二区三区四区精华 | 久久天堂久久| 欧美本精品男人aⅴ天堂| 丰满岳乱妇一区二区| 蜜桃传媒在线观看免费进入| 亚洲黄色在线视频| 成人在线观看你懂的| 日日av拍夜夜添久久免费| 欧美日韩国产另类一区| 亚洲黄色小说在线观看| 亚洲欧美成人vr| 中文字幕v亚洲ⅴv天堂| 91杏吧porn蝌蚪| 99在线精品视频在线观看| 国产999在线观看| 97国产成人无码精品久久久| 国产成a人亚洲精品| 久久久久九九九| 91青青在线视频| 亚洲午夜影视影院在线观看| 欧美女人性生活视频| 成人综合网站| 精品国产一区二区三区av性色| 少妇饥渴放荡91麻豆| 久久精品国产68国产精品亚洲| 日韩资源在线观看| 日韩特黄一级片| 麻豆精品一区二区三区| 国产伦精品一区二区三区高清版| 久草视频在线看| 一区二区三区日本| 免费一级特黄录像| 极品一区美女高清| 超碰日本道色综合久久综合 | 在线欧美一区二区| 日韩精品xxx| 精品久久久久久久| 97国产精品视频| 国产美女三级无套内谢| 久久日韩精品一区二区五区| 成人免费电影视频| 亚洲精品视频久久| 快灬快灬一下爽蜜桃在线观看| 亚洲经典一区| 国产91色在线播放| 蜜臀av中文字幕| 国产精品二三区| 欧美成人黑人猛交| julia中文字幕一区二区99在线| 在线电影av不卡网址| 日本少妇久久久| 国产精品自拍网站| 一区二区不卡在线| 午夜日韩成人影院| 日韩成人小视频| 久久久国产成人| 精品一区二区三区影院在线午夜 | 最新精品国偷自产在线| 欧美大片在线免费观看| 一级特黄aaa大片| 国产色婷婷亚洲99精品小说| 日韩免费电影一区二区| 交100部在线观看| 欧美mv日韩mv国产网站| 五月天色婷婷丁香| 日本欧美一区二区在线观看| 九九九九精品九九九九| 丁香高清在线观看完整电影视频| 欧美一区欧美二区| 久久人妻无码aⅴ毛片a片app| 日本wwwxxxx| 日韩电影在线观看电影| 久久人人九九| 182在线视频观看| 精品国产sm最大网站免费看| 国产极品国产极品| 国产主播一区二区| 国产卡一卡二在线| 精品中文字幕一区二区三区四区| 久久精品在线视频| 97人妻精品一区二区三区视频| 国产目拍亚洲精品99久久精品| 久草综合在线观看| 第一会所亚洲原创| 国产在线精品一区免费香蕉| 麻豆影院在线观看| 日韩一区二区三区av| 69av.com| 波多野结衣在线一区| 青青青免费在线| 欧美美女在线直播| 日本一区二区三区在线播放| 免费看男男www网站入口在线| 色哟哟日韩精品| 黄色av免费播放| 激情丁香综合五月| 91午夜在线观看| 亚洲+变态+欧美+另类+精品| 日本中文字幕不卡免费| h视频在线免费| 欧美剧情片在线观看| 日韩激情综合网| 成人午夜免费av| 日韩精品视频一区二区在线观看| 亚洲福利天堂| 国产欧美一区二区| 青草在线视频在线观看| 日韩av在线免费看| 国产午夜无码视频在线观看 | 日韩影片在线播放| 亚洲高清国产拍精品26u| 欧美日韩国产91| 青青视频在线观| 欧美丰满少妇xxxxx高潮对白| 精品爆乳一区二区三区无码av| av电影一区二区| 久久久久久蜜桃一区二区| 久久成人小视频| 国产一区二区在线| 亚洲伊人成综合成人网| 国产在线美女| 日韩视频免费大全中文字幕| 深爱激情五月婷婷| 欧美日韩视频在线第一区 | 精品久久久国产| 四虎国产成人精品免费一女五男| 国产成人在线观看| 亚洲欧美另类动漫| 亚洲承认在线| 在线观看亚洲视频啊啊啊啊| 国产精品久久久久久久久久白浆| 国产精品黄页免费高清在线观看| 影音先锋男人在线资源| 亚洲日韩欧美视频| 亚洲成熟女性毛茸茸| 色94色欧美sute亚洲线路一久 | 午夜一区二区三区视频| 粉嫩精品久久99综合一区| 四虎影视在线播放| 亚洲一区二三区| 91精品久久久久久久久久久久| 国产·精品毛片| 亚洲 欧美 另类人妖| 国产视频一区三区| 中文字幕日韩精品无码内射| 精品freesex老太交| 国产日韩欧美一区二区| 国产精品3区| 国产精品手机播放| www.成人爱| 992tv在线成人免费观看| 超碰在线无需免费| 色青青草原桃花久久综合| 青青国产在线| 亚洲国产97在线精品一区| 国产伦精品一区二区三区免.费| 色综合天天视频在线观看| 精品无码免费视频| 亚洲精品写真福利| 精品久久久久av| 欧美极品一区二区三区| 成人av免费电影| 日本精品在线一区| 日本亚洲欧洲色α| 天堂中文av在线资源库| 韩国精品美女www爽爽爽视频| 在线观看操人| 久久亚洲影音av资源网 | 久久精品视频在线观看| 99中文字幕一区| 尤物九九久久国产精品的分类| 毛片在线能看| 亚洲色图综合网| 黄色的视频在线免费观看| 亚洲裸体xxxx| 国产专区在线| 亚洲天堂2020| lutube成人福利在线观看| 在线播放精品一区二区三区 | 精品国产av 无码一区二区三区| 欧美区一区二区三区| 一区二区三区播放| 91麻豆精品国产| 亚洲天堂黄色片| 亚洲色大成网站www久久九九| 熟女av一区二区| 亚洲色图欧美在线| 久久综合色综合| 精品国产户外野外| 天堂а√在线中文在线新版| 一本色道a无线码一区v| 五月激情丁香网| 欧美日韩成人在线| 精品国产伦一区二区三区| 日韩欧美不卡在线观看视频| 国模私拍视频在线| 日韩精品在线视频| 大乳在线免费观看| 精品国模在线视频| 秋霞在线午夜| 欧美性受xxxx白人性爽| 免费观看一级欧美片| 国产精品久久久久久久久久免费| 免费视频观看成人| 99re视频在线| 香蕉一区二区| 在线观看免费91| 亚洲成色精品| 日日噜噜夜夜狠狠| 岛国一区二区三区| 最近中文字幕免费| 亚洲视频免费在线观看| 国产成人亚洲精品自产在线| 91福利资源站| 精品人妻一区二区三区四区不卡 | 国产丝袜在线播放| 国产成+人+综合+亚洲欧洲| 国产95亚洲| 开心色怡人综合网站| 99国产精品免费视频观看| 亚洲熟妇无码一区二区三区| 免费成人性网站| 人妻 丝袜美腿 中文字幕| 久久久久国产精品麻豆| 男人与禽猛交狂配| 日本黄色一区二区| 黄色av中文字幕| 中文字幕日本欧美| 俺来也官网欧美久久精品| 日韩美女激情视频| 三级欧美日韩| 亚洲ai欧洲av| 国产精品日韩精品欧美精品| 91精品999| 久久久久久久久伊人| 久久老司机精品视频| 欧美日韩一级二级三级| 色婷婷综合视频| 久久最新资源网| 日韩av免费| 久久免费视频1| 欧美精品播放| 手机av在线网| 国产日韩综合av| 色婷婷av国产精品| 日韩一区二区免费电影| 日本中文字幕在线视频| 国产91成人video| 成人精品毛片| 国内外成人激情免费视频| 日本女优在线视频一区二区| 最近日本中文字幕| 亚洲在线成人精品| 国产毛片毛片毛片毛片| 日韩亚洲一区二区| 午夜av成人| 日本高清不卡一区二区三| 亚洲三级视频| 中国极品少妇xxxx| 一区二区三区四区亚洲| va婷婷在线免费观看| 日韩中文字幕在线观看| 九七电影院97理论片久久tvb| 奇米视频888战线精品播放| 国产欧美大片| 91av在线免费| 欧美日韩在线视频观看| 免费观看国产视频| 欧美黄色片免费观看| 欧美精品三级在线| 久久国产精品免费观看| 激情文学综合插| 日本少妇aaa| 91精品国模一区二区三区| 日本韩国在线视频爽| 国产在线播放91| 亚州av乱码久久精品蜜桃| 永久av免费在线观看| 亚洲卡通欧美制服中文| www.蜜臀av.com| 欧美激情伊人电影 | 欧美变态凌虐bdsm| 成人性生交大片免费看网站| 国产亚洲二区| 午夜综合激情| 精品欧美一区二区久久久| 欧美视频一区二区三区在线观看| 中文字幕一区二区在线视频 | 午夜伦理在线视频| 成人女人免费毛片| 亚洲毛片视频| 色无极影院亚洲| 欧美无砖砖区免费| 看女生喷水的网站在线观看| 亚洲综合成人婷婷小说| 亚洲片区在线| 瑟瑟视频在线观看| 欧美日韩一区二区三区免费看| 黄网站在线免费| 国产精品日韩欧美一区二区三区| 亚洲黄色高清| 99久久人妻无码精品系列| 欧美日韩在线三级| 七七成人影院| 久久久久免费网| 另类小说一区二区三区| 久久久久久久久久网站| 亚洲娇小xxxx欧美娇小| 粉嫩一区二区三区| 亚洲av首页在线| 99精品欧美一区二区三区小说| 中文字幕在线播| 美女av一区二区| 亚欧洲精品视频在线观看| 午夜精品免费看| 亚洲高清免费在线| 成人性生交大片免费看午夜| 91精品国产99久久久久久红楼| aⅴ色国产欧美| 91制片厂在线| 日韩成人高清在线| 国产激情精品一区二区三区| 欧美亚洲一二三区| 亚洲三级小视频| 欧美日韩免费做爰大片| 亚洲综合精品伊人久久| 丝袜脚交一区二区| 不卡的免费av| 色老头一区二区三区| 欧美日韩一区二区三区四区不卡|