版本

handle-callback-err

要求在回呼中處理錯誤

此規則在 ESLint v7.0.0 中已棄用。請使用 eslint-plugin-n 中對應的規則。

在 Node.js 中,處理非同步行為的常見模式稱為回呼模式。此模式預期回呼的第一個引數是 Error 物件或 null。忘記處理這些錯誤可能會導致您的應用程式出現一些非常奇怪的行為。

function loadData (err, data) {
    doSomething(); // forgot to handle error
}

規則詳情

此規則預期當您在 Node.js 中使用回呼模式時,您會處理錯誤。

選項

此規則採用單一字串選項:錯誤參數的名稱。預設值為 "err"

此規則使用預設 "err" 參數名稱的不正確程式碼範例

在遊樂場開啟
/*eslint handle-callback-err: "error"*/

function loadData (err, data) {
    doSomething();
}

此規則使用預設 "err" 參數名稱的正確程式碼範例

在遊樂場開啟
/*eslint handle-callback-err: "error"*/

function loadData (err, data) {
    if (err) {
        console.log(err.stack);
    }
    doSomething();
}

function generateError (err) {
    if (err) {}
}

此規則使用範例 "error" 參數名稱的正確程式碼範例

在遊樂場開啟
/*eslint handle-callback-err: ["error", "error"]*/

function loadData (error, data) {
    if (error) {
       console.log(error.stack);
    }
    doSomething();
}

正規表示式

有時(尤其是在大型專案中),錯誤變數的名稱在專案中不一致,因此您需要更彈性的設定,以確保規則回報所有未處理的錯誤。

如果錯誤變數的設定名稱以 ^ 開頭,則會被視為 regexp 模式。

  • 如果選項是 "^(err|error|anySpecificError)$",則規則會回報參數名稱可以是 errerroranySpecificError 的未處理錯誤。
  • 如果選項是 "^.+Error$",則規則會回報參數名稱以 Error 結尾的未處理錯誤(例如,connectionErrorvalidationError 會符合)。
  • 如果選項是 "^.*(e|E)rr",則規則會回報參數名稱符合包含 errErr 的任何字串的未處理錯誤(例如,errerroranyErrorsome_err 會符合)。

何時不使用它

在某些情況下,忽略錯誤對於您的應用程式可能是安全的,但是只有在您確信其他形式的監控可以幫助您發現問題時,才忽略錯誤。

版本

此規則在 ESLint v0.4.5 中引入。

延伸閱讀

資源

變更語言