Sentry-javascript: *すべての*ブラウザに組み込まれているモンキーパッチを適用する必要がありますか?

作成日 2017年04月27日  ·  3コメント  ·  ソース: getsentry/sentry-javascript

https://blog.sentry.io/2016/01/04/client-javascript-reporting-window-onerror.htmlでイントロを読み、レイヴンのソースコードを確認することは、 onerrorをポリフィルするために本当に必要です。

私には、必要がなければブラウザに不要な作業を強制するように思えます。 それとも、レイヴンはこれを正当化する何か他のことをしていますか?

編集:あなたはレイヴンノードのためにそれをしているようには見えないので、おそらくそうではありません。

全てのコメント3件

少なくとも、それは完全に「エラーオブジェクトが必要」ということではありません。 場合によっては、利用可能になったエラーが単に使用できないことがあります。これには、Firefoxなどの最新のブラウザが含まれます。 たとえば、スタック全体が含まれていない場合や、詳細(列番号など)が欠落している場合があります。

ここでの大きなアスタリスクは、これが今日でも完全に真実であるかどうかはわかりませんが、それほど昔ではありませんでした。

tl; dr予測可能な動作を保証することの害は何ですか、そしてブラウザが変更されない/癖があるふりをします

これは主に、同じエラーが異なるブラウザー間でまったく同じスタックトレースになるようにするために必要です。これにより、異なるブラウザー間で同じ問題の複数の発生を正確にグループ化できます。 これは、クロスオリジンスクリプトがエラーをスローしたときに「スクリプトエラー」以上のものを取得する方法にも関連しており(これに関するBenのブログ投稿を参照)、このインストルメンテーションから自動ブレッドクラムの一部を収集します。

それはさておき、あなたが説明する潜在的な「不必要な作業」は非常に最小限であり、 window.onerrorの動作を検出する機能をきれいに実行することは困難であり、どのブラウザーの最新のマトリックスを維持しようとはしません。代わりにすべてのブラウザーで正規化できる場合、バージョンはwindow.onerrorで何をしますか。

try / catchがないと、エラー以外のオブジェクトがスローされた場合(たとえばthrow "error" )に「合成トレース」を生成できないことを追加する必要があります。 合成トレースを使用すると、不良オブジェクトがどこからスローされたかを確認できます。これは、バグを追跡する上で非常に重要です。

このページは役に立ちましたか?
0 / 5 - 0 評価