reportError() 全域性函式

注意:此功能在Web Workers中可用。

reportError() 全域性方法可用於將錯誤報告到控制檯或全域性事件處理程式,模擬未捕獲的 JavaScript 異常。

此功能主要用於自定義事件分派或回撥操作庫。庫可以使用此功能捕獲回撥程式碼中的錯誤並將其重新丟擲到頂級處理程式。這確保了一個回撥中的異常不會阻止其他回撥被處理,同時確保堆疊跟蹤資訊仍然可以輕鬆地在頂級進行除錯。

語法

js
reportError(throwable)

引數

throwable

錯誤物件,例如TypeError

返回值

無 (undefined)。

異常

TypeError

在沒有錯誤引數的情況下呼叫該方法。

示例

使用以下方法測試該方法的功能

js
if (typeof self.reportError === "function") {
  // function is defined
}

以下程式碼展示瞭如何建立和報告錯誤,以及如何使用全域性 onerror 處理程式或透過為 error 事件新增偵聽器來捕獲錯誤。請注意,分配給 onerror 的處理程式必須返回 true 以停止事件進一步傳播。

js
const newError = new Error("Some error message", "someFile.js", 11);
self.reportError(newError);

window.onerror = (message, source, lineno, colno, error) => {
  console.error(`message: ${error.message}, lineno: ${lineno}`);
  return true;
};

self.addEventListener("error", (error) => {
  console.error(error.filename);
});

// Output
// > "message:Some error message, lineno: 11"
// > "someFile.js"

規範

規範
HTML 標準
# runtime-script-errors

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱