reportError() グローバル関数
メモ: この機能はウェブワーカー内で利用可能です。
reportError()
グローバルメソッドは、 JavaScript の捕捉されない例外をエミュレートして、コンソールやグローバルイベントハンドラーにエラーを報告するために使用することができます。
この機能は、主にカスタムイベント配信ライブラリーや コールバック操作ライブラリーを対象としています。 ライブラリーはこの機能を使用して、コールバックコードのエラーを捕捉し、最上位のハンドラーに投げ直すことができます。 これにより、 1 つのコールバックで例外が発生しても、他のコールバックが処理されなくなることがなくなると同時に、スタックトレース情報が最上位レベルのデバッグに利用できるようになります。
構文
js
reportError(throwable)
引数
返値
なし (undefined
)。
例外
TypeError
-
エラー引数なしでこのメソッドが呼び出された場合。
例
このメソッドが使用できるかどうかの機能検出です。
js
if (typeof self.reportError === "function") {
// この関数が定義されている
}
以下のコードでは、どのようにエラーを作成して報告する方法、グローバルな onerror
ハンドラーを使用するか、 error
イベントのリスナーを追加してエラーを捕捉する方法を示しています。
onerror
に割り当てられたハンドラーは、 true
を返さなければ、イベントがそれ以上伝播しないことに注意してください。
js
const newError = new Error("エラーメッセージ", "someFile.js", 11);
self.reportError(newError);
window.onerror = (message, source, lineno, colno, error) => {
console.error(`メッセージ: ${error.message}、行番号: ${lineno}`);
return true;
};
self.addEventListener("error", (error) => {
console.error(error.filename);
});
// 出力
// > "メッセージ: エラーメッセージ、行番号: 11"
// > "someFile.js"
仕様書
Specification |
---|
HTML Standard # runtime-script-errors |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
Window
WorkerGlobalScope
- error イベント