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 的浏览器中加载。

另请参阅