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事件