簡介

2018-02-24 16:16 更新

NodeJS的錯誤處理讓人痛苦,在很長的一段時間里,大量的錯誤被放任不管。但是要想建立一個健壯的Node.js程序就必須正確的處理這些錯誤,而且這并不難學(xué)。如果你實在沒有耐心,那就直接繞過長篇大論跳到“總結(jié)”部分吧。

原文

這篇文章會回答NodeJS初學(xué)者的若干問題:

  • 我寫的函數(shù)里什么時候該拋出異常,什么時候該傳給callback, 什么時候觸發(fā)EventEmitter等等。
  • 我的函數(shù)對參數(shù)該做出怎樣的假設(shè)?我應(yīng)該檢查更加具體的約束么?例如參數(shù)是否非空,是否大于零,是不是看起來像個IP地址,等等等。
  • 我該如何處理那些不符合預(yù)期的參數(shù)?我是應(yīng)該拋出一個異常,還是把錯誤傳遞給一個callback。
  • 我該怎么在程序里區(qū)分不同的異常(比如“請求錯誤”和“服務(wù)不可用”)?
  • 我怎么才能提供足夠的信息讓調(diào)用者知曉錯誤細節(jié)。
  • 我該怎么處理未預(yù)料的出錯?我是應(yīng)該用?try/catch?,domains?還是其它什么方式呢?

這篇文章可以劃分成互相為基礎(chǔ)的幾個部分:

  • 背景:希望你所具備的知識。
  • 操作失敗和程序員的失誤:介紹兩種基本的異常。
  • 編寫新函數(shù)的實踐:關(guān)于怎么讓函數(shù)產(chǎn)生有用報錯的基本原則。
  • 編寫新函數(shù)的具體推薦:編寫能產(chǎn)生有用報錯的、健壯的函數(shù)需要的一個檢查列表
  • 例子:以connect函數(shù)為例的文檔和序言。
  • 總結(jié):全文至此的觀點總結(jié)。
  • 附錄:Error對象屬性約定:用標(biāo)準(zhǔn)方式提供一個屬性列表,以提供更多信息。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號