Error.stackTraceLimit

Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.

Hinweis: Diese Funktion ist Teil der derzeit nicht standardisierten V8 Stack Trace API. Aus Kompatibilitätsgründen wird sie jedoch auch von JavaScriptCore implementiert.

Die statische Daten-Eigenschaft Error.stackTraceLimit gibt die maximale Anzahl an Stack-Frames an, die durch den Stack-Trace eines Fehlers erfasst werden. Sie kann durch Benutzer-Code gesetzt werden, um das Verhalten der Engine zu ändern.

Im Allgemeinen ist das Auslesen dieser Eigenschaft nicht besonders nützlich, aber Sie können sie auf einen neuen Wert setzen. Das Festlegen auf einen größeren Wert kann beim Debugging hilfreich sein, da es Ihnen ermöglicht, mehr vom Call-Stack zu sehen. Das Festlegen auf einen kleineren Wert kann die Leistung verbessern, da die Menge des erfassten Stacks reduziert wird.

Wert

Ein Integer-Wert, der die maximale Anzahl an Stack-Frames darstellt, die vom Stack-Trace eines Fehlers erfasst werden.

Eigenschaften von Error.stackTraceLimit
Schreibbarja
Aufzählbarja
Konfigurierbarja

Beschreibung

Da stackTraceLimit eine statische Eigenschaft von Error ist, verwenden Sie sie 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

Error.stackTraceLimit setzen

Dieser Code kann sicher in Umgebungen ausgeführt werden, die Error.stackTraceLimit nicht unterstützen, da er die Eigenschaft nicht ausliest, sondern nur setzt. Engines, die die Eigenschaft nicht unterstützen, ignorieren die Einstellung.

js
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

BCD tables only load in the browser

Siehe auch