Eleganter Umgang mit Fehlern in Javascript

Unerwarteten Fehlern kann man mit try/catch-Anweisungen leicht begegnen. In einigen Fällen möchte man mit Fehlern jedoch vielleicht anders umgehen. Javascript bietet die throw-Anweisung an. Die Syntax ist einfach: throw gefolgt von der zu generierenden Ausnahme. So kann der Programmierer individuelle Ausnahmen definieren und per throw-Anweisung auslösen. Der Code in Listing E erzeugt eine Ausnahme für fehlende Werte und wird generiert.

Listing E


Die folgende Meldung wird angezeigt (wenn für das Feld kein Wert eingegeben wird):


An unexpected error has occurred.
Please contact the administrator.
First name is missing.

Außerdem kann man den instanceof-Operator verwenden, um die Art der Ausnahme zu ermitteln und entsprechend zu reagieren. Der Code in Listing F überprüft den Typ des Ausnahmeobjekts und zeigt entsprechende Daten an.

Listing F


Der instanceof-Operator kann in Verbindung mit Standardfehlern eingesetzt werden. Javascript definiert die folgenden Typen für Javascript-Standardfehler:

EvalError: Zeigt an, dass die übergreifende eval-Funktion falsch eingesetzt wurde.
RangeError: Weist darauf hin, dass ein numerischer Wert seinen Wertebereich überschritten hat.
ReferenceError: Eine illegale Referenz wurde festgestellt.
SyntaxError: Beim Parsen ist ein Fehler aufgetreten.
TypeError: Tatsächlicher Typ eines Operanden entspricht nicht dem erwarteten Typ.
URIError: Eine der globalen URI-Funktionen (encodeURI oder decodeURI) wurde falsch eingesetzt.

Der Code in Listing G setzt den TypeError-Typ in einer catch-Anweisung ein. Ein Typ-Fehler wird hier durch das zusätzliche d in der Zeile erzeugt, die Bezug auf den Feldnamen nimmt (ddocument).

Listing G


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Eleganter Umgang mit Fehlern in Javascript

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *