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 gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Mai 2022 browserübergreifend verfügbar.
Die getArg() Prototyp-Methode des Exception-Objekts kann verwendet werden, um den Wert eines bestimmten Elements in den Datenargumenten der Ausnahme abzurufen.
Die Methode übergibt ein WebAssembly.Tag und wird nur erfolgreich sein, wenn die geworfene Exception mit demselben Tag erstellt wurde. Andernfalls wird ein TypeError ausgelöst. Dies stellt sicher, dass die Ausnahme nur gelesen werden kann, wenn der aufrufende Code Zugriff auf das Tag hat. Tags, die weder in den noch aus dem WebAssembly-Code importiert oder exportiert werden, sind intern, und ihre zugehörige WebAssembly.Exception kann mit dieser Methode nicht abgefragt werden!
Hinweis: Es reicht nicht aus, dass das Tag eine identische Folge von Datentypen hat – es muss die gleiche Identität (das gleiche Tag) sein, das zur Erstellung der Ausnahme verwendet wurde.
Ein WebAssembly.Tag, das mit dem Tag übereinstimmen muss, das mit dieser Ausnahme verknüpft ist.
indexDer Index des Werts in den Datenargumenten, der zurückgegeben werden soll, 0-indiziert.
Der Wert des Arguments an index.
Die Tags stimmen nicht überein; die Ausnahme wurde nicht mit dem Tag erstellt, das an die Methode übergeben wurde.
RangeErrorDer Wert des index-Parameters ist größer oder gleich der Anzahl der Felder in den Daten.
Damit die Werte einer Ausnahme abgerufen werden können, muss das Tag dem aufrufenden Code "bekannt" sein; es kann entweder in den aufrufenden Code importiert oder aus ihm exportiert werden.
Betrachten Sie den folgenden WebAssembly-Code, der angenommen wird, dass er in eine Datei "example.wasm" kompiliert ist. Dieser importiert ein Tag, das intern als $tagname bezeichnet wird, und exportiert eine Methode run, die von externem Code aufgerufen werden kann, um unter Verwendung des Tags eine Ausnahme auszulösen.
Der untenstehende Code verwendet WebAssembly.instantiateStreaming, um die Datei "example.wasm" zu importieren, wobei ein "Importobjekt" (importObject) übergeben wird, das ein neues WebAssembly.Tag namens tagToImport enthält. Das Importobjekt definiert ein Objekt mit Eigenschaften, die mit der import-Anweisung im WebAssembly-Code übereinstimmen.
Sobald die Datei instanziiert ist, ruft der Code die exportierte WebAssembly run()-Methode auf, die sofort eine Ausnahme auslösen wird.
Der Code fängt die Ausnahme ab und verwendet getArg(), um den Wert am ersten Index zu drucken. In diesem Fall ist es nur "1".
Der Prozess zur Verwendung eines exportierten Tags ist dem im vorherigen Abschnitt gezeigten sehr ähnlich. Hier ist dasselbe WebAssembly-Modul, wobei einfach der Import durch einen Export ersetzt wird.
Das JavaScript ist ebenfalls ähnlich. In diesem Fall haben wir keine Importe, aber wir erhalten das exportierte Tag und verwenden dieses, um das Argument zu bekommen. Um es ein wenig "sicherer" zu machen, testen wir hier auch, ob wir das richtige Tag haben, indem wir die is()-Methode verwenden.
| WebAssembly JavaScript Interface: Exception Handling # dom-exception-getarg |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.