"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment capturer les traces de pile des exceptions personnalisées en JavaScript ?

Comment capturer les traces de pile des exceptions personnalisées en JavaScript ?

Publié le 2024-11-08
Parcourir:103

How to Capture Stack Traces of Custom Exceptions in JavaScript?

Obtenir une trace d'exceptions levées

Bien que JavaScript permette de déclencher des exceptions, obtenir une trace de pile pour une exception personnalisée peut être difficile . Cet article explore différentes méthodes pour récupérer les traces de pile spécifiquement pour les exceptions définies par l'utilisateur.

La propriété stack d'un objet Error fournit une solution simple. En créant un nouvel objet Error et en accédant à sa propriété de pile, vous pouvez capturer une trace :

function stackTrace() {
    var err = new Error();
    return err.stack;
}

Cette approche génère une trace de pile similaire à :

DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44
DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9
.success@http://localhost:49573/:462
x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
k@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
.send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6

Ce format fournit la fonction d'appel, l'URL et les fonctions d'appel successives.

Pour les navigateurs modernes, une méthode plus simple est disponible :

console.trace(); // (MDN Reference)

Cette fonction capture une trace de pile et l'affiche dans la console.

Une option alternative a été proposée dans le fil de discussion d'origine :

function stacktrace() { 
  function st2(f) {
    return !f ? [] : 
        st2(f.caller).concat([f.toString().split('(')[0].substring(9)   '('   f.arguments.join(',')   ')']);
  }
  return st2(arguments.callee.caller);
}

Cette fonction parcourt de manière récursive la pile d'appels et construit une chaîne de trace de pile.

En implémentant ces méthodes, les développeurs peuvent obtenir efficacement des traces de pile pour les exceptions JavaScript personnalisées, permettant une gestion des erreurs et un débogage plus robustes. .

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729175015. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3