ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript でグローバル エラー処理を実装するにはどうすればよいですか?

JavaScript でグローバル エラー処理を実装するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 16:48:03897ブラウズ

JavaScript のグローバル エラー処理メカニズム: 未処理エラーの捕捉

JavaScript では、未処理関数エラーを捕捉することが不可欠です。ただし、この言語には現在、専用のグローバル エラー処理メカニズムがありません。この記事では、この問題に対処する解決策を詳しく説明します。

window.onerror イベント ハンドラーの割り当て

捕捉されなかった JavaScript エラーをすべてキャプチャするには、window.onerror イベント ハンドラーを割り当てることができます。イベントをカスタム イベント ハンドラーに渡します。エラーが発生すると、ハンドラーはいくつかのパラメータを受け取ります。

  • msg: エラー メッセージ
  • url: エラーの原因となったスクリプトの URL
  • line:スクリプト内の行番号
  • col (オプション): 行内の列番号 (HTML5 でサポート)
  • error (オプション): 実際のエラー オブジェクト (HTML5 でサポート)

コード例:

<code class="javascript">window.onerror = function(msg, url, line, col, error) {
  // Handle and log the error...
};</code>

window.onerror はいつ発生しますか?

window.onerror イベントは常にトリガーされます:

  • キャッチされなかった例外がスローされました (例: 「何らかのメッセージ」をスロー)
  • コンパイル時エラーが発生しました (例: スクリプト内の閉じ括弧が欠落しています)

サポートされているブラウザ

window.onerror イベントは、次のような主要なブラウザでサポートされています。

  • Chrome 13
  • Firefox 6.0
  • Internet Explorer 5.5
  • Opera 11.60
  • Safari 5.1

スクリーンショットの例

How Can You Implement Global Error Handling in JavaScript?

AJAX エラー レポート

エラー レポートを容易にするために、AJAX を利用してエラーの詳細をサーバー側のスクリプトに送信し、ログ記録やさらなる分析を行うことができます。

<code class="javascript">var xhr = new XMLHttpRequest();
xhr.open('POST', '/ajax/log_javascript_error');
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() { ... };
xhr.send(JSON.stringify(errorData));</code>

参考資料

さらに詳しく知りたい場合は、次のリソースを参照してください:

  • Mozilla Developer Network :: window.onerror
  • MSDN :: Web ページ エラーの処理と回避 パート 2: 実行時エラー
  • 基本に戻る – JavaScript onerror イベント
  • DEV.OPERA :: ウィンドウでのエラー処理の改善。 onerror
  • Window onError イベント
  • onerror イベントを使用して JavaScript エラーを抑制する
  • SO :: window.onerror が Firefox で起動しない

以上がJavaScript でグローバル エラー処理を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。