あんまりないと思うのだが、Angular と Sentry (Ravenではなく) を同時に使っているとき、ErrorHandler で Sentry にエラーを送ると同時に console.log()
にエラー内容を出したいことがあるかもしれない(うちのプロジェクトではなぜかある)。
しかし、そのまま console.log()
するとまずいことが起きたので、回避方法をここに書いておく。
発生したまずいこと、というのは再帰呼出しで、ブラウザの制限を食いつぶすまで再帰呼び出しが続いていたようだ。
これを回避するには、以下のようにする。
import { consoleSandbox } from '@sentry/utils/misc'; class MyErrorHandler extends ErrorHandler { handleError(err: any) { consoleSandbox(() => { console.error(err.originalError || err); }); } }
これで再帰呼び出しは起こらないようになった。
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2017/08/04
- メディア: 大型本
- この商品を含むブログを見る
Angularデベロッパーズガイド 高速かつ堅牢に動作するフロントエンドフレームワーク
- 作者: 宇野陽太,奥野賢太郎,金井健一,林優一,吉田徹生,稲富駿,丸山弘詩
- 出版社/メーカー: インプレス
- 発売日: 2017/12/15
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る