2016-04-22 6 views
2

私は非同期の子ルートを持つアプリケーションを持っています。この便利なLink続いて、私はカスタムexeptionハンドラを作成し、すべてのベースの例外をキャッチ、私はどんな「uncaughtPromiseErrors」を扱うことができない(テンプレートがエラーを解析し、など。、)が発生していること/アンギュラpolyfillsで生成されました。これらのキャッチされていないエラーはアプリケーションをハングしていますが、唯一の解決策はアプリをリロードすることです。これらのエラーは、カスタム例外ハンドラのエラーをキャッチする前にapp/route-tableを破棄しています。例外処理を角2で

いくつかの質問:

  1. それは、彼らがアプリケーションをクラッシュしないことこれらの「uncaughterrors」な方法を扱うことは可能ですか?
  2. 角度ポリフィルのメソッドをオーバーライドする必要がありますか?
  3. なぜテンプレート解析エラーが「uncaughterros」なのですか?それらは基本例外として登録されないので、カスタムハンドラでそれらを捕捉することは可能ですか?

答えて

1

実際、テンプレートの解析エラーはカスタム例外ハンドラによってキャッチされます。

私が試してみて、私は、例外ハンドラでは、たとえば次のエラーが表示されます

InstantiationError { 
    _wrapperMessage: "DI Exception", 
    _originalException: BaseException, 
    _originalStack: "Error: Template parse errors:↵Unexpected closing t…larjs.org/2.0.0-beta.15/angular2.dev.js:12520:29)", 
    _context: null, 
    _wrapperStack: "Error: DI Exception↵ at InstantiationError.Wrap…ularjs.org/2.0.0-beta.15/angular2.dev.js:12987:39" 
} 

問題は、あなたがこのようなエラーを持っている場合、それは問題を修正し、アプリケーションを再ロードせずに回復することは不可能ですです。

また、HTTP要求が失敗したことを監視してテストを行いましたが、エラーコールバックを定義していません。例外ハンドラは、エラー(この場合はエラー応答)もキャッチします。

このplunkr:https://plnkr.co/edit/LCF4pEz39GZwMl7mu9nw?p=previewを参照してください。

+0

あなたはティエリー正しい、それがベースの例外を表示しているが、エラーの一部は、カスタム例外ハンドラを使用して処理することはできませんし、それは完全なルーティングを壊します。カスタムハンドラが失敗するシナリオは、home.component.tsのコメントの次の手順で再現できます。ここにhttps://plnkr.co/edit/UTjIqBZZT20QJWLgOvNv?p=previewがあります。御時間ありがとうございます! – Sachin

+0

これはangular2/routerの問題ですか?もしそうなら、私はGithubの角2の問題にこれをエスカレートします。 – Sachin