Maison  >  Article  >  interface Web  >  Comment obtenir des traces de pile JavaScript pour les exceptions personnalisées ?

Comment obtenir des traces de pile JavaScript pour les exceptions personnalisées ?

DDD
DDDoriginal
2024-10-17 22:30:03935parcourir

How Can JavaScript Stack Traces Be Obtained for Custom Exceptions?

Comment obtenir une trace de pile JavaScript pour les exceptions personnalisées

Lors du lancement d'exceptions JavaScript personnalisées (par exemple, lancez "AArrggg"), l'accès à un la trace de la pile (via Firebug ou d'autres outils) ne peut révéler que le message d'exception. Cet article présente des solutions pour obtenir des traces de pile complètes, même pour des exceptions personnalisées.

Solution de navigateur moderne :

Dans les navigateurs modernes, vous pouvez facilement accéder à la trace de pile avec la console .trace().

Propriété Stack d'erreur :

Pour une solution plus propre et plus simple, vous pouvez utiliser la propriété stack d'un objet Error :

<code class="js">function stackTrace() {
    var err = new Error();
    return err.stack;
}</code>

Cette approche fournit une trace de pile détaillée, y compris les fonctions d'appel, les chemins de fichiers et les numéros de ligne.

Fonction de trace de pile personnalisée :

Pour une utilisation plus personnalisée fonctionnalité de trace de pile, pensez à utiliser le script suivant :

<code class="js">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);
}</code>

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!

Déclaration:
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