WorkerGlobalScope: reportError() 方法
注意:此功能仅在 Web Workers 中可用。
WorkerGlobalScope 接口的 reportError() 方法可用于向全局作用域的控制台或事件处理程序报告错误,模拟未捕获的 JavaScript 异常。
此功能主要用于自定义事件分派或回调函数操作的库。库可以使用此功能来捕获回调代码中的错误,并将它们重新抛出给顶层处理程序。这确保了一个回调中的异常不会阻止其他回调被处理,同时又能确保堆栈跟踪信息在顶层调试时仍然易于获取。
语法
js
reportError(throwable)
参数
返回值
无(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);
self.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 |
浏览器兼容性
加载中…
另见
WorkerGlobalScopeWindow.reportError()error事件error事件error事件