web-dev-qa-db-ja.com

window.onError関数で適切なスタックトレースが提供されるのはいつですか?

他の多くのプログラミング言語(Java、Rubyなど)の例外/エラーは、常にスタックトレース/バックトレース情報を提供します。

JavaScriptでは、未処理のエラーはwindow.onErrorによってキャッチされます。

その関数はErrorオブジェクトを取得しないため、オブジェクトのスタックプロパティにアクセスできません。

いつに関する信頼できる情報源はありますか?それについて何か変更はありますか?

36
Dimitris Zorbas

エラーオブジェクト自体がonerrorに提供される5番目のパラメータになるようです。 http://html5.org/tools/web-apps-tracker?from=8085&to=8086
http://www.whatwg.org/specs/web-apps/current-work/ -セクション7.1.6.1

11
Dimitris Zorbas

「サニタイズされた」スタックトレースを含むエラーオブジェクトは、Chromeのonerrorに5番目のパラメータとして渡されています。ここでそれについて読むことができます: https://code.google.com/p/chromium/issues/detail?id=147127

この記事の執筆時点では、カナリアにあり、今月後半に安定版Chromeリリースにプッシュする必要があります。カナリアを実行している場合は、次のようにテストできます。

window.onerror = function (message, file, line, column, errorObj) {
    if(errorObj !== undefined) //so it won't blow up in the rest of the browsers
        console.log('Error: ' + errorObj.stack);
}

仕様に従って、IE 10も実装されている列番号も追加されていることがわかります。

Mozillaディスカッションをチェックアウトすることもできます: https://bugzilla.mozilla.org/show_bug.cgi?id=3554

36
Brandon Pugh