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

浏览器兼容性

另见