exceptionHandlerの実装をオーバーライドする方法
2023-10-30 09:35:33
質問
javascriptの例外が発生したときに、常に行いたいことがあります。
のドキュメントから
$exceptionHandler
:
angular式でキャッチできない例外はすべてこのサービスに委譲されます。デフォルトの実装では、単に$log.errorに委ねられ、ブラウザコンソールにログが記録されます。
default implementation"と書かれていることから、このサービスに独自の実装を提供し、例外がスローされたときに必要なことを行う方法があるように思います。質問は、これをどのように行うかということです。すべての例外をこのサービスに送りつつ、起こしたい機能を提供するにはどうしたらよいでしょうか?
どのように解決するのですか?
私が見つけたもう一つの方法は、quot;decorate" を使って
$exceptionHandler
を通して
$provide.decorator
関数で指定します。これは、オリジナルの実装を独自の実装の一部として使用したい場合に、 その実装への参照を提供するものです。ですから、次のようなことができます。
mod.config(function($provide) {
$provide.decorator("$exceptionHandler", ['$delegate', function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
alert(exception.message);
};
}]);
});
これはオリジナルの例外ハンドラが行うことに加えて、カスタム機能を行います。
こちらをご覧ください 更新されたフィドル .
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] ECMAScriptとは?
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?