Maison > interface Web > js tutoriel > le corps du texte

Techniques de surveillance et de journalisation des erreurs en JavaScript

WBOY
Libérer: 2023-09-12 14:13:07
avant
1319 Les gens l'ont consulté

Techniques de surveillance et de journalisation des erreurs en JavaScript

La surveillance et la journalisation des erreurs JavaScript sont essentielles au maintien de la stabilité et des performances des applications. Dans cet article, nous explorerons des techniques avancées qui peuvent vous aider à surveiller et enregistrer efficacement les erreurs dans votre code JavaScript. Nous couvrirons les gestionnaires d'erreurs globaux, les blocs try/catch, les traces de pile, les bibliothèques de journalisation, les classes d'erreurs personnalisées, les rapports et notifications d'erreurs, ainsi que le suivi des erreurs en production.

Gestionnaire d'erreurs global

Les gestionnaires d'erreurs globaux vous permettent de détecter et de gérer les erreurs qui se produisent pendant l'exécution de votre application JavaScript. En tirant parti de window.onerror et window.onunhandledrejection, vous pouvez enregistrer ou signaler les erreurs et les exceptions.

Exemple

window.onerror = function(message, url, line, column, error) {
   console.error("An error occurred:", message);
   console.error("URL:", url);
   console.error("Line:", line);
   console.error("Column:", column);
   console.error("Error object:", error);
};

window.onunhandledrejection = function(event) {
   console.error("Unhandled promise rejection:", event.reason);
};
Copier après la connexion

Instructions

Le code fourni définit un gestionnaire d'erreurs global en JavaScript. window.onerror détecte les erreurs non gérées et enregistre le message d'erreur, l'URL du script, les numéros de ligne et de colonne et l'objet d'erreur. window.onunhandledrejection capture les rejets de promesse non gérés et enregistre la raison du rejet. Ces gestionnaires aident à identifier et à enregistrer les erreurs qui se produisent lors de l'exécution de la page Web.

Sortie

An error occurred: ReferenceError: someVariable is not defined
URL: https://example.com/js/app.js
Line: 42
Column: 15
Error object: ReferenceError: someVariable is not defined
Copier après la connexion

Essayer/attraper des blocs

L'utilisation de blocs try/catch vous permet de gérer des exceptions spécifiques et de récupérer gracieusement des erreurs qui pourraient survenir dans un bloc de code.

Exemple

try {
   // Code that might throw an error
   const result = someFunction();
   console.log("Result:", result);
} catch (error) {
   console.error("An error occurred:", error);
}
Copier après la connexion

Instructions

Le code fourni utilise des blocs try/catch pour gérer les erreurs potentielles en JavaScript. Le bloc try contient du code qui peut générer une erreur, et si une erreur se produit, le bloc catch est exécuté, qui enregistre le message d'erreur à l'aide de console.error().

Sortie

An error occurred: TypeError: someFunction is not a function
Copier après la connexion

Traçage de la pile

Les traces de pile fournissent des informations précieuses sur la séquence d'appels de fonction qui ont provoqué l'erreur. Ils aident à comprendre la source des erreurs et à diagnostiquer efficacement les problèmes.

Exemple

function foo() {
   bar();
}

function bar() {
   throw new Error("Something went wrong");
}

try {
   foo();
} catch (error) {
   console.error("Error stack trace:", error.stack);
}
Copier après la connexion

Instructions

Le code définit deux fonctions : foo() et bar(). Lorsque foo() est appelé, il appelle bar(), qui génère intentionnellement une erreur en utilisant throw new Error().

Le code est contenu dans un bloc try/catch. Lorsqu'une erreur est générée à l'intérieur du bloc try, le bloc catch détecte l'erreur et stocke l'objet d'erreur dans la variable d'erreur.

Le bloc

catch enregistre la trace de pile de l'erreur à l'aide des propriétés console.error() et error.stack.

Sortie

Error stack trace: Error: Something went wrong
   at bar (script.js:5:9)
   at foo (script.js:2:3)
   at script.js:10:3
Copier après la connexion

Bibliothèque de disques

Les bibliothèques de journalisation telles que Sentry, Rollbar et LogRocket offrent des capacités avancées de surveillance des erreurs. Ils simplifient le suivi des erreurs, l'agrégation et le reporting, et fournissent souvent une intégration avec des frameworks et des services.

Exemple

// Using Sentry logging library
Sentry.init({
   dsn: 'your-sentry-dsn',
   // Other configuration options
});

try {
   // Code that might throw an error
} catch (error) {
   Sentry.captureException(error);
}
Copier après la connexion

Instructions

Le code initialise la bibliothèque de journaux Sentry et configure la capture des erreurs. Dans le bloc try, vous pouvez placer du code susceptible de générer des erreurs. Si une erreur se produit, le bloc catch utilise Sentry.captureException() pour envoyer l'erreur à Sentry pour enregistrement et analyse.

Classe d'erreur personnalisée

L'extension de la classe Error intégrée vous permet de créer des classes d'erreur personnalisées avec des propriétés et des méthodes supplémentaires. Cela rend la gestion des erreurs plus informative et plus facile.

Exemple

Considérez le code ci-dessous.

class MyCustomError extends Error {
   constructor(message, customProperty) {
      super(message);
      this.customProperty = customProperty;
   }
}

try {
   throw new MyCustomError("Something went wrong.", "Custom data");
} catch (error) {
   console.error("Custom property:", error.customProperty);
}
Copier après la connexion

Instructions

Ce code définit une classe d'erreur personnalisée MyCustomError qui étend Error. À l'intérieur du bloc try, il génère une instance MyCustomError avec un message d'erreur spécifique et des propriétés personnalisées. Dans le bloc catch, il enregistre les propriétés personnalisées de l'objet d'erreur intercepté.

Sortie

Custom property: Custom data
Copier après la connexion

Rapports de bugs et notifications

Intégrez votre système de surveillance des erreurs à des services de notification tels que des plateformes de courrier électronique ou de chat pour recevoir des alertes en temps réel lorsque des erreurs critiques se produisent.

Exemple

Considérez le code ci-dessous.

function sendErrorNotification(error) {
   // Code to send an error notification via email or chat
}

try {
   // Code that might throw an error
} catch (error) {
   sendErrorNotification(error);
}
Copier après la connexion
Instructions

Le code définit une fonction sendErrorNotification() qui accepte un paramètre d'erreur et contient la logique pour envoyer une notification d'erreur, par exemple par e-mail ou par chat.

Dans un bloc try, vous pouvez placer du code susceptible de générer une erreur. Si une erreur se produit, le bloc catch est exécuté et la fonction sendErrorNotification() est appelée avec l'objet d'erreur comme paramètre pour déclencher le processus de notification d'erreur.

Ce code montre comment gérer les erreurs en appelant une fonction personnalisée pour envoyer une notification d'erreur lorsqu'une erreur se produit dans un bloc try. Il permet une notification et une réponse proactives aux erreurs, aidant ainsi à dépanner et à résoudre les problèmes rapidement.

Conclusion

Des techniques efficaces de surveillance et de journalisation des erreurs sont essentielles au maintien de la stabilité et des performances des applications JavaScript. Vous pouvez détecter, diagnostiquer et résoudre les problèmes plus efficacement en tirant parti des gestionnaires d'erreurs globaux, des blocs try/catch, des traces de pile, des bibliothèques de journalisation, des classes d'erreurs personnalisées, des rapports et notifications d'erreurs et du suivi des erreurs en production. N'oubliez pas de trouver un équilibre entre les détails de journalisation et la sensibilité des données, et examinez régulièrement les journaux pour maintenir et améliorer de manière proactive votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!