DOM

Window.reportError() メソッド

 編集:2022.09.16 by T.A.

[Edge]。→

注: この機能は で利用できます

Window で指定のエラーをエミュレートします。

mdn: コンソールまたはグローバル イベント ハンドラーにエラーを報告できます。キャッチされていない JavaScript 例外をエミュレートします。

この機能は主に、カスタム イベント ディスパッチまたはコールバック操作ライブラリを対象としています。ライブラリはこの機能を使用して、コールバック コードのエラーをキャッチし、トップ レベルのハンドラーに再スローすることができます。これにより、1 つのコールバックで例外が発生しても、他のコールバックの処理が妨げられることはありません。同時に、トップレベルでのデバッグにスタック トレース情報をすぐに利用できるようにします。

構文
Window.reportError(throwable)
Window Window オブジェクト。
throwable TypeError などのエラー オブジェクト。
戻り値

なし(undefined)。

例外
TypeError
メソッドは、エラー引数なしで呼び出されます。

以下を使用したメソッドの機能テスト:

if (typeof self.reportError === 'function') {
  // function is defined
}

次のコードは、エラーを作成して報告する方法を示しています。また、グローバルな onerror ハンドラを使用するか、エラー イベントのリスナーを追加することによって、どのようにキャッチされるかを示します。イベントの伝播を停止するには、onerror に割り当てられたハンドラが true を返す必要があることに注意してください。

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"
window.onerror=(message, source, lineno) => { //onerror イベントハンドラーの設定:
  alert(message +":"+ source +":"+ lineno);
};
E=new Error('エラーテスト', "あああ", 11); //エラーオブジェクト作成。
window.reportError(E);                     //エラーをエミュレート。

表示結果は、

Script error.::0

指定したエラー内容が出ていないようだが。

return true; が必要なのか不明。

window.addEventListener('error', (err) => { //errorイベント割り当て:
  alert(err.message +":"+ err.fileName +":"+ err.lineNumber);
});
E=new Error('エラーテスト', "あああ", 11); //エラーオブジェクト:message、fileName、lineNumber を指定。
window.reportError(E); //エラーをエミュレート。

表示結果:

Script error.:undefined:undefined

指定したエラー内容が出ていないようだが。


テスト