„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erfasst man Stapelspuren benutzerdefinierter Ausnahmen in JavaScript?

Wie erfasst man Stapelspuren benutzerdefinierter Ausnahmen in JavaScript?

Veröffentlicht am 08.11.2024
Durchsuche:638

How to Capture Stack Traces of Custom Exceptions in JavaScript?

Erhalten eines Strace ausgelöster Ausnahmen

Während JavaScript das Auslösen von Ausnahmen ermöglicht, kann das Erhalten eines Stack-Trace für eine benutzerdefinierte Ausnahme eine Herausforderung sein . In diesem Artikel werden verschiedene Methoden zum Abrufen von Stack-Traces speziell für benutzerdefinierte Ausnahmen untersucht.

Die Stack-Eigenschaft eines Error-Objekts bietet eine einfache Lösung. Indem Sie ein neues Error-Objekt erstellen und auf dessen Stack-Eigenschaft zugreifen, können Sie einen Trace erfassen:

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

Dieser Ansatz generiert einen Stack-Trace ähnlich wie:

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

Dieses Format stellt die aufrufende Funktion, die URL und aufeinanderfolgende aufrufende Funktionen bereit.

Für moderne Browser ist eine einfachere Methode verfügbar:

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

Diese Funktion erfasst einen Stack-Trace und zeigt ihn in der Konsole an.

Eine alternative Option wurde im ursprünglichen Thread vorgeschlagen:

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);
}

Diese Funktion durchläuft rekursiv den Aufrufstapel und erstellt eine Stack-Trace-Zeichenfolge.

Durch die Implementierung dieser Methoden können Entwickler effektiv Stack-Traces für benutzerdefinierte JavaScript-Ausnahmen abrufen und so eine robustere Fehlerbehandlung und Fehlerbehebung ermöglichen .

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729175015 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3