ホームページ ウェブフロントエンド jsチュートリアル JS 例外処理 (sofish)_javascript スキルのアイデア

JS 例外処理 (sofish)_javascript スキルのアイデア

May 16, 2016 pm 05:40 PM
例外処理

ネットワーク、ブラウザの問題、キャッシュなどにより、js のオンライン実行が開発環境と異なり、例外がスローされる可能性があります。 js の例外は、基本的にフロントエンド開発エンジニアにとって日課です。記録方法と使い方ですが、そこに注目している人はほとんどいません。私は最近、基本的に収集と使用の 2 つのステップを含むアイデアについて考えています。

1. コレクション
エラー収集については、各ブラウザに window.onerror というインターフェイスがあるため、非常に便利です。コードは次のとおりです。 🎜>

コードをコピーします コードは次のとおりです:
window.onerror = function(errorMessage, scriptURL, lineNumber) {
alert(errorMessage, scriptURL, lineNumber)
}


try/catch の e.stack などのスタック トレースも提供します (各ブラウザは異なります。eriwen /javascript を使用できます) -stacktrace 互換性ライブラリ) を使用して、次のコードを試してください:


コードをコピーします コードは次のとおりです:
try {
fn()
} catch(e) {
alert(e.stack)
}


したがって、これらを収集する方が便利ですはい、ここで注意すべき点は、window.addEventListener('error', callback, isBubble) を使用するときのコールバックの最初のパラメーターはイベントではなく、Error オブジェクトであるということです。この場合、便宜上、window.onerror を使用するのが良い選択ですが、ドット演算子を通じて監視されるイベントはオーバーロードされる可能性があり、このリスニング スクリプトは理論的にはすべての js の先頭に配置されるため、リスクを考慮する必要があります。


2.
を使用する 以前 Alipay を使用していたとき、オンラインの JS エラー レポートは電子メールに変換されてフロントエンド開発チームに送信され、全員が請求して解決していました。それは自分自身です。実際、これは良い選択であり、すぐに対応して修復するという最も基本的な問題も解決します。しかし、同じ間違いを避けるにはどうすればよいかという問題もあります。私の最初のアイデアは次のとおりです。同じページ上でエラーを記録する単位として URL を使用します。これにより、各エラーが解決された後に、記録されたエラー (ページ URL、ユーザー エージェント、スクリプト URL、エラー メッセージ、行番号など) の統一された解決が容易になります。ソリューションを 1 か所に記述し、それを見た人がコメントしたりポイントを追加したりできます。最終的にはナレッジ ベースとしてアーカイブされ、開発中や開発時にこれらのナレッジ ベースのコンテンツを使用するために便利な API を使用できます。同じページ window.onerror が発生すると、エラー メッセージが分析されてタイプが特定され、開発者はナレッジ ベースの特定のタグをサブスクライブできます。電子メールを自動的に受信します (もちろん、ファイルのコメントやマッピングなどに基づいて、より適切なペアリングを行うこともできます)。 なぜこれを行うのですか?主に次の問題を解決するため: 開発者が学ぶことができるナレッジ ベースを形成します。特に効率を向上させ、繰り返しのエラーや繰り返しの解決策を回避するための初心者向けツールを作成します。

3. 注意事項。
1. エラー メッセージが長くなる場合があり、保存されるエラーが少ない場合は、GET 送信を使用することを検討できます。通常、POST はすべてのデータをバックグラウンドに送信できます。 2. データをいつ送信するか? onerror がトリガーされたときにデータを送信することをお勧めします。最初にこのアイデアを思いついたとき、onbeforeonload 中に送信しようとしましたが、POST リクエストが開かれる前にブラウザによって中断されました。 3. データベースに保存するのに適したインデックスはどれですか? 一般に、ほとんどの Web サイトには URL の方が適しています。ただし、Baixing.com や Taobao などの UGC が多い Web サイトでは、URL を記録するために変更が必要になる場合があります。結局のところ、異なる投稿や異なる URL はすべて同じコードのセットを持っています。 Error をインデックスとして使用するのはどうですか?実際、どのような種類であっても、自分のニーズに応じて選択してください。 4. すべてのエラーを記録するかどうか。これも必要に応じて適切です。 Baidu.com にはあらゆる種類の厄介なエラー レポートがあり、Baidu/Google への広告外部リンクから送信されている可能性があります。

4. 結論
現在、収集ツール (sofish/stacktrace.js) と保存方法が初期実装されていますが、継続するかどうかは時間とさらなる検討を必要とします。私は最初にそれを送り、いくつかのレンガを投げて翡翠を引き寄せます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ 関数の例外とマルチスレッド: 同時環境でのエラー処理 C++ 関数の例外とマルチスレッド: 同時環境でのエラー処理 May 04, 2024 pm 04:42 PM

C++ での関数例外処理は、マルチスレッド環境でスレッドの安全性とデータの整合性を確保するために特に重要です。 try-catch ステートメントを使用すると、特定の種類の例外が発生したときにそれをキャッチして処理し、プログラムのクラッシュやデータの破損を防ぐことができます。

Java 関数の再帰呼び出しと例外処理の間にはどのような関係がありますか? Java 関数の再帰呼び出しと例外処理の間にはどのような関係がありますか? May 03, 2024 pm 06:12 PM

再帰呼び出しでの例外処理: 再帰の深さの制限: スタック オーバーフローの防止。例外処理を使用する: try-catch ステートメントを使用して例外を処理します。末尾再帰の最適化: スタックのオーバーフローを回避します。

C++ 例外処理はカスタム エラー処理ルーチンをどのようにサポートしますか? C++ 例外処理はカスタム エラー処理ルーチンをどのようにサポートしますか? Jun 05, 2024 pm 12:13 PM

C++ 例外処理を使用すると、例外をスローし、try-catch ブロックを使用して例外をキャッチすることで実行時エラーを処理するカスタム エラー処理ルーチンを作成できます。 1. 例外クラスから派生したカスタム例外クラスを作成し、what() メソッドをオーバーライドします。 2. throw キーワードを使用して例外をスローし、例外のタイプを指定します。扱った。

C++ テクノロジにおける例外処理: マルチスレッド環境で例外を正しく処理するにはどうすればよいですか? C++ テクノロジにおける例外処理: マルチスレッド環境で例外を正しく処理するにはどうすればよいですか? May 09, 2024 pm 12:36 PM

マルチスレッド C++ では、例外処理は適時性、スレッドの安全性、明確性という原則に従います。実際には、ミューテックスまたはアトミック変数を使用することで、例外処理コードのスレッド セーフを確保できます。さらに、例外処理コードの再入性、パフォーマンス、テストを考慮して、コードがマルチスレッド環境で安全かつ効率的に実行されることを確認してください。

C++ ラムダ式で例外を処理するにはどうすればよいですか? C++ ラムダ式で例外を処理するにはどうすればよいですか? Jun 03, 2024 pm 03:01 PM

C++ ラムダ式の例外処理には独自のスコープがなく、デフォルトでは例外はキャッチされません。例外をキャッチするには、ラムダ式キャッチ構文を使用できます。これにより、ラムダ式がその定義スコープ内の変数をキャプチャできるようになり、try-catch ブロックで例外処理が可能になります。

Java マルチスレッド環境での例外処理 Java マルチスレッド環境での例外処理 May 01, 2024 pm 06:45 PM

マルチスレッド環境での例外処理の重要なポイント: 例外のキャッチ: 各スレッドは try-catch ブロックを使用して例外をキャッチします。例外の処理: エラー情報を出力するか、catch ブロックでエラー処理ロジックを実行します。スレッドを終了する: 回復が不可能な場合は、Thread.stop() を呼び出してスレッドを終了します。 UncaughtExceptionHandler: キャッチされなかった例外を処理するには、このインターフェイスを実装し、スレッドに割り当てる必要があります。実際のケース: スレッド プールでの例外処理。UncaughtExceptionHandler を使用してキャッチされなかった例外を処理します。

PHP 例外処理: 例外追跡を通じてシステムの動作を理解する PHP 例外処理: 例外追跡を通じてシステムの動作を理解する Jun 05, 2024 pm 07:57 PM

PHP 例外処理: 例外追跡を通じてシステムの動作を理解する 例外は、PHP がエラーを処理するために使用するメカニズムであり、例外は例外ハンドラーによって処理されます。例外クラス Exception は一般的な例外を表し、Throwable クラスはすべての例外を表します。 throw キーワードを使用して例外をスローし、try...catch ステートメントを使用して例外ハンドラーを定義します。実際のケースでは、例外処理を使用して、calculate() 関数によってスローされる DivisionByZeroError をキャプチャして処理し、エラー発生時にアプリケーションが適切に失敗できるようにします。

C++ テクノロジにおける例外処理: 例外処理のパフォーマンスを最適化するにはどうすればよいですか? C++ テクノロジにおける例外処理: 例外処理のパフォーマンスを最適化するにはどうすればよいですか? May 09, 2024 am 10:39 AM

C++ で例外処理のパフォーマンスを最適化するには、次の 4 つの手法を実装できます。 不必要な例外スローを回避します。軽量の例外クラスを使用します。効率を優先し、必要な情報のみを含む例外クラスを設計します。コンパイラ オプションを活用して、パフォーマンスと安定性の最適なバランスを実現します。

See all articles