Syntaxe
newrelic.noticeError(error object $error, [object $customAttributes])
Identifie une erreur de navigateur sans perturber les opérations de votre application.
Exigences
navigateur Pro ou Pro+SPA agent
- L'argument attribut personnalisé nécessite l'agent v1118 ou supérieur
newrelic.noticeError()
nécessite l'agent v499 ou supérieurNREUM.noticeError()
nécessite l'agent v411 ou supérieur
Si vous utilisez npm pour installer l'agent du navigateur, vous devez activer la fonctionnalité
jserrors
lors de l'instanciation de la classeBrowserAgent
. Dans l'éventailfeatures
, ajoutez ce qui suit :import { JSErrors } from '@newrelic/browser-agent/features/jserrors';const options = {info: { ... },loader_config: { ... },init: { ... },features: [JSErrors]}Pour plus d'informations, consultez la documentation d'installation du navigateur npm.
Description
Utilisez cet appel pour remarquer ou log les erreurs traitées ou autres erreurs diverses de votre application. Cela est utile lorsque vous avez détecté et géré une erreur, mais que vous souhaitez toujours l'identifier sans perturber le fonctionnement de votre application.
Vous pouvez également utiliser l'API pour détecter des erreurs qui seraient autrement signalées sans aucun détail, telles que des erreurs qui se produisent lors de l'initialisation script ou dans un gestionnaire d'événements en ligne. Les erreurs apparaîtront sur la pageErrors avec d'autres erreurs que New Relic détecte normalement. Ils seront également enregistrés comme un événementJavaScriptError
. Par exemple:
var err = new Error('Report caught error to New Relic');newrelic.noticeError(err);
Remarque : si plus de 1 000 événements JavaScriptError
sont envoyés dans une seule requête, seuls 1 000 événements distincts sont enregistrés. Cependant, le nombre total d'événements est conservé en interne et accessible à l'aide de la clause de requêteEXTRAPOLATE
.
Paramètres
paramètres | Description |
---|---|
objet d'erreur | Requis. Fournissez un message d'erreur significatif que vous pouvez utiliser lors de l'analyse des données sur la pageErrors du navigateur. |
| Facultatif. Un objet contenant des paires nom/valeur représentant un attribut personnalisé. |
Exemples
Erreurs non critiques
Cet exemple montre comment utiliser l'API newrelic.noticeError
pour signaler les erreurs détectées que vous ne souhaitez pas perturber votre application. Ceci est utile lorsque les erreurs non critiques n'ont pas d'impact sur l'expérience de l'utilisateur, mais que vous souhaitez tout de même les signaler aux développeurs. L'exemple de code utilise en toute sécurité un objet foo
par défaut en cas de mauvais JSON.
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);
rappel avec erreur facultative
Cet exemple montre comment signaler une erreur à New Relic lors de l'utilisation du modèle d'erreur et de réponse rappel popularisé par Node.js et courant dans le développement de Browserify. Vous pouvez remplacer alert(body);
par votre propre message pertinent.
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);});
Exemple d'API basée sur les promesses
Les promesses fournissent un modèle unique pour gérer les interactions asynchrones, ce qui facilite la gestion des erreurs asynchrones. Cependant, cela facilite également l'ignorance totale des erreurs, laissant les applications défectueuses d'une manière que les développeurs ne peuvent pas voir. Cet exemple signale ces erreurs asynchrones à New Relic pour éviter qu'elles ne soient négligées.
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);});
Exemple de capture d'attribut personnalisé
try { // code that throws an error} catch (err) { newrelic.noticeError(err, { attribute1: 'value1', attribute2: 2 });}
Limitations du navigateur (Apple Safari et Microsoft Internet Explorer uniquement)
Si une erreur est détectée et relancée, elle n'aura pas de trace d'appels. Pour ces cas, si vous souhaitez que l'API newrelic.noticeError
signale une trace d'appels pour tous les types de navigateur, vous devez la transmettre à l'API dans l'instruction catch
.
try { throw errorObject;} catch (err) { newrelic.noticeError(err); throw err; // loses stack trace!}