catch()メソッドで.subscribe()メソッドを使用するときに例外をキャッチできますが、これはサービスコールベースで行われます。ページ内の任意の場所で発生した例外をキャッチしてビューに表示する方法はありますか?Angular2 - 例外をキャッチしてエラーメッセージを表示する
例外をキャッチしてコンソールに表示するのは簡単ですが、フリーズするのではなく有用なエラーメッセージを表示するには、ビューに何かを表示する必要があります。
おかげ
catch()メソッドで.subscribe()メソッドを使用するときに例外をキャッチできますが、これはサービスコールベースで行われます。ページ内の任意の場所で発生した例外をキャッチしてビューに表示する方法はありますか?Angular2 - 例外をキャッチしてエラーメッセージを表示する
例外をキャッチしてコンソールに表示するのは簡単ですが、フリーズするのではなく有用なエラーメッセージを表示するには、ビューに何かを表示する必要があります。
おかげ
あなたは、モジュール内のグローバルエラーハンドラをオーバーライドすることができます。
https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.htmlカスタムエラーダイアログやエラーメッセージの
import { NgModule, ErrorHandler } from '@angular/core';
class MyErrorHandler implements ErrorHandler {
handleError(error) {
// do something with the exception
}
}
@NgModule({
providers: [{ provide: ErrorHandler, useClass: MyErrorHandler }]
})
class MyModule {}
が、私はできるカスタムErrorLogServiceを作成しますエラーイベントをサブスクライブするコンポーネント。エラーを表示するコンポーネントは、エラーイベントをサブスクライブし、エラーメッセージを表示するか、エラーダイアログをポップアップします。
は、(パターンが重要である - 関与していない特定のクラス)、これを行うためにフラックスを使用する方法については、この回答を参照してください://developer.mozilla: How can I maintain the state of dialog box with progress all over my Angular 2 application?
あなたは[window.onerror](httpsを使用することができます。 org/en-US/docs/Web/API/GlobalEventHandlers/onerror)を使用してページ上のすべての例外に反応しますが、これは良い考えではありません... – AngularChef