Window: reportError() メソッド

reportError()Window インターフェイスのメソッドで、 JavaScript の捕捉されない例外をエミュレートして、コンソールやグローバルイベントハンドラーにエラーを報告するために使用することができます。

この機能は、主にカスタムイベント配信ライブラリーや コールバック操作ライブラリーを対象としています。 ライブラリーはこの機能を使用して、コールバックコードのエラーを捕捉し、最上位のハンドラーに投げ直すことができます。 これにより、 1 つのコールバックで例外が発生しても、他のコールバックが処理されなくなることがなくなると同時に、スタックトレース情報が最上位レベルのデバッグに利用できるようになります。

構文

js
reportError(throwable)

引数

throwable

エラーオブジェクト、例えば TypeError です。

返値

なし (undefined)。

例外

TypeError

エラー引数なしでこのメソッドが呼び出された場合。

このメソッドが使用できるかどうかの機能検出です。

js
if (typeof window.reportError === "function") {
  // この関数が定義されている
}

以下のコードでは、どのようにエラーを作成して報告する方法、グローバルな onerror ハンドラーを使用するか、 error イベントのリスナーを追加してエラーを捕捉する方法を示しています。 onerror に割り当てられたハンドラーは、 true を返さなければ、イベントがそれ以上伝播しないことに注意してください。

js
const newError = new Error("エラーメッセージ", "someFile.js", 11);
window.reportError(newError);

window.onerror = (message, source, lineno, colno, error) => {
  console.error(`メッセージ: ${error.message}、行番号: ${lineno}`);
  return true;
};

window.addEventListener("error", (error) => {
  console.error(error.filename);
});

// 出力
// > "メッセージ: エラーメッセージ、行番号: 11"
// > "someFile.js"

仕様書

Specification
HTML
# runtime-script-errors

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
reportError

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

関連情報