Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
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.
Die stack-Eigenschaft, die schreibgeschützt ist, des WebAssembly.Exception-Objekts kann einen Stack-Trace enthalten.
Ein String, der den Stack-Trace enthält, oder undefined, wenn kein Trace zugewiesen wurde.
Der Stack-Trace-String listet die Positionen jeder Operation auf dem Stack im WebAssembly-Format auf. Dies ist ein menschenlesbarer String, der die URL, den Namen des aufgerufenen Funktionstyps, den Funktionsindex und dessen Offset im Modul-Binärformat angibt. Er hat ungefähr folgendes Format (siehe Konventionen für Stack-Traces in der Spezifikation für weitere Informationen):
${url}:wasm-function[${funcIndex}]:${pcOffset}Ausnahmen vom WebAssembly-Code enthalten standardmäßig keinen Stack-Trace.
Wenn WebAssembly-Code einen Stack-Trace bereitstellen muss, muss eine JavaScript-Funktion aufgerufen werden, um die Ausnahme zu erstellen, und der Parameter options.traceStack=true muss im Konstruktor übergeben werden. Die virtuelle Maschine kann dann der vom Konstruktor zurückgegebenen Ausnahme ein Stack-Trace anhängen.
Hinweis: Stack-Traces werden normalerweise nicht vom WebAssembly-Code gesendet, um die Leistung zu verbessern. Die Möglichkeit, diesen Ausnahmen Stack-Traces hinzuzufügen, ist für Entwickler-Tools gedacht und wird im Allgemeinen nicht zur breiten Verwendung empfohlen.
Dieses Beispiel zeigt, wie man eine Ausnahme von WebAssembly aus wirft, die einen Stack-Trace enthält.
Betrachten Sie den folgenden WebAssembly-Code, der angenommen wird, dass er in eine Datei namens example.wasm kompiliert wird. Dieser importiert ein Tag, das intern als $tagname bezeichnet wird, und importiert eine Funktion, die intern als $throwExnWithStack bezeichnet wird. Er exportiert die Methode run, die von externem Code aufgerufen werden kann, um $throwExnWithStack aufzurufen.
Der folgende JavaScript-Code definiert ein neues Tag tag und die Funktion throwExceptionWithStack(). Diese werden dem WebAssembly-Modul im importObject übergeben, wenn es instanziiert wird.
Sobald das Modul instanziiert ist, ruft der Code die exportierte WebAssembly-Methode run() auf, die sofort eine Ausnahme auslöst. Der Stack wird dann aus dem catch-Statement geloggt.
Der bedeutendste Teil dieses Codes ist die Zeile, in der die Ausnahme erstellt wird:
Das Übergeben von {traceStack: true} weist die WebAssembly-Virtual-Maschine an, dass sie einen Stack-Trace an die zurückgegebene WebAssembly.Exception anhängen soll. Ohne dies wäre der Stack undefined.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.