• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

noticeError (ブラウザエージェントAPI)

構文

newrelic.noticeError(error object $error, [object $customAttributes])

アプリの動作を停止させることなく、ブラウザのエラーを特定します。

要件

カスタム属性の引数には、エージェントのバージョン nr-1118 以上が必要です。

newrelic.noticeError() エージェント バージョンnr-499以降が必要です。

NREUM.noticeError() エージェント バージョンnr-411以降が必要です。

ブラウザの監視が有効であること

JavaScriptのエラー監視が有効であること

説明

このコールは、アプリの処理済みエラーやその他の雑多なエラーを通知または記録するために使用します。これは、エラーをキャッチして処理したものの、アプリの動作を中断させることなくエラーを特定したい場合に便利です。

API を使用して、スクリプトの初期化中やインライン イベント ハンドラーで発生したエラーなど、詳細なしで報告されるエラーに気付くこともできます。エラーは、New Relic が通常検出するその他のエラーとともに、 JavaScript エラーページに表示されます。また、 JavaScriptErrorイベントとして記録されます。例えば:

var err = new Error('Report caught error to New Relic');
newrelic.noticeError(err);

注: 1 回のリクエストで 1000 を超えるJavaScriptErrorイベントが送信された場合、1000 個の個別のイベントのみが記録されます。ただし、イベントの総数は内部的に保持され、 EXTRAPOLATEクエリ句を使用してアクセスできます。

パラメーター

パラメータ

説明

$error

エラーオブジェクト

必須です。ブラウザの JavaScript のエラー ページ のデータを分析する際に使用できる、意味のあるエラーメッセージを提供してください。

$customAttributes 物体

オプションです。カスタム属性を表す名前と値のペアを含むオブジェクトです。

ノンクリティカルエラー

この例は、 newrelic.noticeError API を使用して、アプリケーションを中断させたくないキャッチされたエラーを報告する方法を示しています。これは、重大ではないエラーがユーザー エクスペリエンスに影響を及ぼさないものの、開発者に報告したい場合に役立ちます。コード例では、JSON が正しくない場合にデフォルトのfooオブジェクトを安全に使用しています。

var foo;
try {
foo = JSON.parse('{ "bar"');
} catch (err) {
//Report caught error to New Relic
newrelic.noticeError(err);
foo = { bar: 'default value' };
}
alert(foo.bar);

オプションのエラー付きコールバック

この例では、Node.js によって普及し、Browserify 開発で一般的なエラーおよび応答パターンのコールバックを使用するときに、エラーを New Relic に報告する方法を示します。alert(body);を独自の関連メッセージに置き換えることができます。

var xhr = require('xhr');
xhr('http://localhost:8080', function(err, resp, body) {
//Report unthrown error to New Relic
if (err) return newrelic.noticeError(err);
//Handle successful response
alert(body);
});

Promise-based APIの例

プロミスは、非同期のインタラクションを処理するための単一のパターンを提供し、非同期のエラーを簡単に処理することができます。しかし、これによりエラーを完全に無視することも容易になり、開発者には見えないところでアプリケーションが壊れたままになってしまいます。この例では、これらの非同期エラーをNew Relicに報告し、見過ごされないようにしています。

var rest = require('rest');
rest('/').then(function(res) {
//Handle successful response
alert(res.entity);
}, function(err) {
//Report unthrown error to New Relic
newrelic.noticeError(err);
});

カスタム属性の取得例

try {
// code that throws an error
} catch (err) {
newrelic.noticeError(err, { attribute1: 'value1', attribute2: 2 });
}

ブラウザの制限(Apple SafariとMicrosoft Internet Explorerのみ)

エラーがスローされない場合、スタック トレースはありません。newrelic.noticeError API がすべてのブラウザ タイプでスタック トレースを報告するようにするには、エラーを API に渡す前に、エラーを手動でスローしてキャッチする必要があります。

try {
throw errorObject;
} catch (err) {
newrelic.noticeError(err);
}
Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.