Error.stackTraceLimit
Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.
Hinweis: Dieses Feature ist Teil der derzeit nicht standardisierten V8 Stack Trace API. Aus Kompatibilitätsgründen wird es jedoch auch von JavaScriptCore implementiert.
Die statische Dateneigenschaft Error.stackTraceLimit
gibt die maximale Anzahl von Stapelrahmen an, die durch den Stack-Trace eines Fehlers erfasst werden. Sie kann von Benutzer-Code gesetzt werden, um das Verhalten der Engine zu ändern.
Im Allgemeinen ist das Lesen dieser Eigenschaft nicht sehr nützlich, aber Sie können sie auf einen neuen Wert setzen. Das Setzen auf einen größeren Wert kann beim Debuggen nützlich sein, da es Ihnen ermöglicht, mehr vom Aufrufstapel zu sehen. Das Setzen auf einen kleineren Wert kann die Leistung verbessern, da die erfasste Stapelgröße reduziert wird.
Wert
Ein ganzzahliger Wert, der die maximale Anzahl der vom Stack-Trace eines Fehlers erfassten Stapelrahmen darstellt.
Eigenschaften von Error.stackTraceLimit | |
---|---|
Schreibbar | ja |
Aufzählbar | ja |
Konfigurierbar | ja |
Beschreibung
Da stackTraceLimit
eine statische Eigenschaft von Error
ist, verwenden Sie es immer als Error.stackTraceLimit
und nicht als Eigenschaft eines von Ihnen erstellten Error
-Objekts. Wenn Sie den Stack-Trace nur für einen einzelnen Fehler anpassen möchten, müssen Sie möglicherweise die Eigenschaft setzen, den Fehler erstellen und dann die Eigenschaft auf ihren ursprünglichen Wert zurücksetzen.
Beispiele
Setzen von Error.stackTraceLimit
Dieser Code kann sicher ausgeführt werden, auch in Umgebungen, die Error.stackTraceLimit
nicht unterstützen, da die Eigenschaft nicht gelesen, sondern nur gesetzt wird und Engines, die sie nicht unterstützen, die Einstellung ignorieren werden.
Error.stackTraceLimit = 2;
const a = () => b();
const b = () => c();
const c = () => d();
const d = () => e();
const e = () => {
throw new Error("My error");
};
try {
a();
} catch (e) {
console.log(e.stack);
}
// Only two frames in supporting engines; all frames in others
Spezifikationen
No specification found
No specification data found for javascript.builtins.Error.stackTraceLimit
.
Check for problems with this page or contribute a missing spec_url
to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.
Browser-Kompatibilität
Siehe auch
Error.prototype.stack
Error.captureStackTrace()
- Stack Trace API in den V8-Dokumenten