Window: reportError() 方法

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

此功能主要面向自定義事件分派或回撥函式操作庫。庫可以使用此功能捕獲回撥程式碼中的錯誤,並將它們重新丟擲給頂層處理程式。這樣可以確保一個回撥中的異常不會阻止其他回撥被處理,同時還能確保堆疊跟蹤資訊在頂層除錯時仍然可用。

語法

js
reportError(throwable)

引數

throwable

一個錯誤物件,例如 TypeError

返回值

無(undefined)。

異常

TypeError

在不帶錯誤引數的情況下呼叫該方法。

示例

使用此方法進行功能測試

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

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

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

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

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

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

規範

規範
HTML
# runtime-script-errors

瀏覽器相容性

另見