Java開發(fā) 錯(cuò)誤碼

2021-03-23 10:54 更新

\1. 【強(qiáng)制】錯(cuò)誤碼的制定原則:快速溯源、溝通標(biāo)準(zhǔn)化。

  • 說明: 錯(cuò)誤碼想得過于完美和復(fù)雜,就像康熙字典中的生僻字一樣,用詞似乎精準(zhǔn),但是字典不容易隨身攜帶并且簡(jiǎn)單易懂。

  • 正例:錯(cuò)誤碼回答的問題是誰的錯(cuò)?錯(cuò)在哪? 1)錯(cuò)誤碼必須能夠快速知曉錯(cuò)誤來源,可快速判斷是誰的問題。 2)錯(cuò)誤碼必須能夠進(jìn)行清晰地比對(duì)(代碼中容易 equals)。 3)錯(cuò)誤碼有利于團(tuán)隊(duì)快速對(duì)錯(cuò)誤原因達(dá)到一致認(rèn)知。

\2. 【強(qiáng)制】錯(cuò)誤碼不體現(xiàn)版本號(hào)和錯(cuò)誤等級(jí)信息。

  • 說明:錯(cuò)誤碼以不斷追加的方式進(jìn)行兼容。錯(cuò)誤等級(jí)由日志和錯(cuò)誤碼本身的釋義來決定。

\3. 【強(qiáng)制】全部正常,但不得不填充錯(cuò)誤碼時(shí)返回五個(gè)零:00000。

\4. 【強(qiáng)制】錯(cuò)誤碼為字符串類型,共 5 位,分成兩個(gè)部分:錯(cuò)誤產(chǎn)生來源+四位數(shù)字編號(hào)。

  • 說明:錯(cuò)誤產(chǎn)生來源分為 A/B/C,A 表示錯(cuò)誤來源于用戶,比如參數(shù)錯(cuò)誤,用戶安裝版本過低,用戶支付超時(shí)等問題;B 表示錯(cuò)誤來源于當(dāng)前系統(tǒng),往往是業(yè)務(wù)邏輯出錯(cuò),或程序健壯性差等問題;C 表示錯(cuò)誤來源于第三方服務(wù),比如 CDN 服務(wù)出錯(cuò),消息投遞超時(shí)等問題;四位數(shù)字編號(hào)從 0001 到 9999,大類之間的步長(zhǎng)間距預(yù)留 100,參考文末附表 3。

\5. 【強(qiáng)制】編號(hào)不與公司業(yè)務(wù)架構(gòu),更不與組織架構(gòu)掛鉤,以先到先得的原則在統(tǒng)一平臺(tái)上進(jìn)行,審批生效,編號(hào)即被永久固定。

\6. 【強(qiáng)制】錯(cuò)誤碼使用者避免隨意定義新的錯(cuò)誤碼。

  • 說明:盡可能在原有錯(cuò)誤碼附表中找到語義相同或者相近的錯(cuò)誤碼在代碼中使用即可。

\7. 【強(qiáng)制】錯(cuò)誤碼不能直接輸出給用戶作為提示信息使用。

  • 說明:堆棧(stack_trace)、錯(cuò)誤信息(error_message)、錯(cuò)誤碼(error_code)、提示信息(user_tip)是一個(gè)有效關(guān)聯(lián)并互相轉(zhuǎn)義的和諧整體,但是請(qǐng)勿互相越俎代庖。

\8. 【推薦】錯(cuò)誤碼之外的業(yè)務(wù)獨(dú)特信息由 error_message 來承載,而不是讓錯(cuò)誤碼本身涵蓋過多具體業(yè)務(wù)屬性。

\9. 【推薦】在獲取第三方服務(wù)錯(cuò)誤碼時(shí),向上拋出允許本系統(tǒng)轉(zhuǎn)義,由 C 轉(zhuǎn)為 B,并且在錯(cuò)誤信息上帶上原有的第三方錯(cuò)誤碼。

10.【參考】錯(cuò)誤碼分為一級(jí)宏觀錯(cuò)誤碼、二級(jí)宏觀錯(cuò)誤碼、三級(jí)宏觀錯(cuò)誤碼。

  • 說明:在無法更加具體確定的錯(cuò)誤場(chǎng)景中,可以直接使用一級(jí)宏觀錯(cuò)誤碼,分別是:A0001(用戶端錯(cuò)誤)、B0001(系統(tǒng)執(zhí)行出錯(cuò))、C0001(調(diào)用第三方服務(wù)出錯(cuò))。

  • 正例:調(diào)用第三方服務(wù)出錯(cuò)是一級(jí),中間件錯(cuò)誤是二級(jí),消息服務(wù)出錯(cuò)是三級(jí)。

11.【參考】錯(cuò)誤碼的后三位編號(hào)與 HTTP 狀態(tài)碼沒有任何關(guān)系。

12.【參考】錯(cuò)誤碼有利于不同文化背景的開發(fā)者進(jìn)行交流與代碼協(xié)作。

  • 說明:英文單詞形式的錯(cuò)誤碼不利于非英語母語國家(如阿拉伯語、希伯來語、俄羅斯語等)之間的開發(fā)者互相協(xié)作。

13.【參考】錯(cuò)誤碼即人性,感性認(rèn)知+口口相傳,使用純數(shù)字來進(jìn)行錯(cuò)誤碼編排不利于感性記憶和分類。

  • 說明:數(shù)字是一個(gè)整體,每位數(shù)字的地位和含義是相同的。

  • 反例:一個(gè)五位數(shù)字 12345,第 1 位是錯(cuò)誤等級(jí),第 2 位是錯(cuò)誤來源,345 是編號(hào),人的大腦不會(huì)主動(dòng)地拆開并分辨每位數(shù)字的不同含義。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)