JavaScript/Objekte/Error

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Konstruktorfunktion Error() und weitere, davon abgeleitete Konstruktoren erzeugen die Error-Objekte, die JavaScript in bestimmten Fehlersituationen wirft.

Überblick über die Error-Objektfamilie

Es ist möglich, Error-Objekte direkt zu nutzen. Es gibt aber auch einige weitere Konstruktorfunktionen für Error-Objekte, die von JavaScript in bestimmten Fehlersituationen verwendet werden. Bislang ist es in JavaScript allerdings nicht möglich, im try...catch-Statement unterschiedliche Error-Objektklassen automatisch zu erkennen, so wie das beispielsweise in PHP möglich ist.

JavaScript kennt die folgenden eingebauten Unterklassen für Error-Objekte (native errors):

EvalError
Wird ausgelöst, wenn bei der Ausführung eines eval()-Aufrufs auftreten.
RangeError
Wird ausgelöst, wenn ein numerischer Wert nicht in seinem gültigen Wertebereich liegt
ReferenceError
Wird ausgelöst, wenn auf eine undeklarierte oder uninitialisierte Variable zugegriffen wird
SyntaxError
Wird ausgelöst, wenn JavaScript auf ein Sprachkonstrukt stößt, das syntaktisch falsch ist. Das kann beim Aufruf von eval() geschehen, aber auch, wenn ein JavaScript-Programm, das neuere Features nutzt, in einem veralteten JavaScript-Interpreter ausgeführt wird. Mache Feature-Abfragen erfordern try-catch Blöcke, die einen SyntaxError erkennen, um zu prüfen, ob das Feature unterstützt wird.
TypeError
Wird ausgelöst, wenn eine Operation nicht ausgeführt werden kann. Das kann daran liegen, dass ein Wert, der verarbeitet werden soll, einen falschen Typ hat. Die ECMAScript-Spezifikation beschreibt den TypeError aber auch als den Fehler, der geworfen werden soll, wenn die übrigen Fehlertypen nicht passen.
URIError
Wird ausgelöst, wenn eine der URI-Funktionen auf eine Weise verwendet wird, die mit ihrer Spezifikation nicht kompatibel ist.

In der DOM Spezifikation ist darüber hinaus DOMException als weitere Unterklasse von Error definiert.

Schnittstelle der eingebauten Fehlerobjekte

Alle eingebauten Fehlerobjekte verfügen über die gleiche Schnittstelle:

Eigenschaften des Error-Objekts

Eigenschaften von Error.prototype

Methoden von Error.prototype

Konstruktor

Die Konstruktorfunktion der eingebauten Fehlerobjekte erzeugt neue Fehlerobjekte. Sie kann mit und ohne den new-Operator verwendet werden. In beiden Fällen wird ein neues Objekt erzeugt.

Parameter:

message
Die Nachricht, die in der message-Eigenschaft des erzeugten Objekts enthalten sein soll
options (optional)
Ein Objekt mit möglichen Optionen. Zur Zeit gibt es nur eine Option:
  • cause: Der hier hinterlegte Wert wird in die cause-Eigenschaft des Error-Objekts eingetragen

cause

Überschreibbar: ja Aufzählbar: nein Konfigurierbar: ja

Diese Eigenschaft ist seit 2021 verfügbar und verfolgt den Zweck, ein Error-Objekt auf ein weiteres Error-Objekt verweisen zu lassen. Oft ist es so, dass eine Funktion eine interne Fehlerbehandlung implementiert und im Fehlerfall ein Error-Objekt wirft. Der Grund für den Error kann vielfältig sein - vielleicht eine fehlgeschlagene Werteüberprüfung, oder ein Error-Objekt, das bei einer internen Operation ausgelöst und von der Funktion gefangen wurde. In beiden Fallen kann man in dem Error-Objekt, das die Funktion nach oben wirft, mittels der cause-Option einen Eintrag hinterlassen, sei es ein Fehlertext oder die innere Exception.

message

Überschreibbar: ja Aufzählbar: nein Konfigurierbar: ja

Zu jedem Fehler gehört eine Nachricht, die beschreibt, was passiert ist. Sie wird vom Error-Konstruktor gesetzt und ist in dieser Eigenschaft zu finden. Der Text, der hier abgelegt ist, ist für Menschen gedacht.

Wenn Sie für ihre Anwendung interne Fehlercodes verwenden wollen, dann bietet das Error-Objekt dafür keine vordefinierte Schnittstelle. Sie können aber in selbst erzeugten Error-Objekten nach Belieben weitere Eigenschaften ergänzen.

name

Diese von dem Prototype-Objekt des Konstruktors, der das Error-Objekt erzeugt hat, vererbte Methode liefert den Namen des Fehlertyps und entspricht dem Namen der verwendeten Konstruktorfunktion.

toString()

Die toString() Methode erzeugt eine lesbare Darstellung des Errors, bestehend aus den Inhalten von name und message. Für Error-Objekte, bei denen der Name leer ist, wird nur die Fehlernachricht zurückgegeben.

Siehe auch

MDN: Error