week 5 JS 錯誤處理最佳實踐

2021/8/25

[译] NodeJS 错误处理最佳实践 - CNode技术社区

定義:

  • Bug: 程式碼的錯誤

  • Error: 操作失敗(但程式碼是正確的)

Error handling:

錯誤處理是在處理操作失敗(包含使用者、伺服器、資料庫設定等等的錯誤)

如何處理操作失敗:

  • 直接處理: 從 log 找到可以處理的錯誤訊息, eg. 找不到檔案, network 問題

  • 直接把錯誤訊息丟給客戶端: 客戶操作不當的錯誤 ⇒ 提交格式錯誤、404 可以由客戶端解決的操作問題 ⇒ 503、429

  • 直接崩潰: 屬於 bug 類,可以 log 後建議直接 crash,等待修復

  • log: 沒有辦法處理的錯誤,還是要記錄下來

程式碼上的錯誤處理:

  • 同步:throw

  • 非同步:callback, EventEmitter

文件上應該要記錄:

  • 參數、類型

  • 可能的錯誤 eg. 缺少參數、連接錯誤

  • 怎麼拋出錯誤

日誌

  • 程式碼什麼地方會記錄 log?訂單?接三方服務 webhook?

  • 各位大大的 Log 有遵守/參考 RFC5424 的八個等級嗎?

通常是四個

  • 呈上各位大大的日誌管理流程是什麼? 根據錯誤級別來設定通知?還是出事了連進去查 log?

  • 呈上查 log 有搭配什麼管理面板咪?

可以參考一些 bug tracing tool

=>見【實務討論】

Last updated