錯誤

錯誤 在 JavaScript

19 個練習

關於 錯誤

當程式或某段程式碼出了錯,或出現非預期的狀況時,回報錯誤是很有用的。

它們是 JavaScript 物件。

這個物件的主要屬性是message:

const error = new Error('Oops, something went wrong');

console.log(error.message);
// => "Oops, something went wrong"

使用throw語法,你可以拋出一個 Error。

throw new Error('Oops');

當錯誤被拋出時,目前的執行會停止,並在呼叫堆疊的第一個 catch 區塊中繼續執行。

try {
  throw new Error('Oops');
} catch (error) {
  console.log(error.message);
  // => "Oops"
}

就像 JavaScript 中的任何類別一樣,子類別可以使用extends關鍵字繼承Error,來建立自訂錯誤。 instanceof語法會檢查捕捉到的錯誤是否為某個Error子類別的實例。

class CustomError extends Error {}

try {
  // ... Code that may throw an error
} catch (error) {
  if (error instanceof CustomError) {
    console.log('The error thrown is an instance of the CustomError');
  }
}

錯誤型別

除了Error物件之外,還有其他內建的錯誤物件。你可以在這裡了解更多。

自訂錯誤

你也可以建立一個繼承自某個內建錯誤型別的類別,來定義自己的自訂錯誤型別

class MyCustomError extends Error {}

拋出非錯誤

雖然throw語法通常用來拋出 Error 物件,但 JavaScript 很有彈性,可以讓你拋出string、null或任何基本型別。

錯誤堆疊追蹤

雖然這在 JavaScript 中並非標準做法,但大多數 JavaScript 環境都會在 Error 物件上實作stack屬性,讓你能取得所拋出錯誤的堆疊追蹤。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 錯誤