Eleganter Umgang mit Fehlern in Javascript

Ähnlich wie andere Sprachen, etwa Java oder C#, enthält Javascript die Anweisung try/catch/finally. Eine try-Anweisung schließt einen Codeabschnitt ein, in dem eine Ausnahme wie zum Beispiel ein Laufzeitfehler vorkommen kann. Die catch-Klausel beschreibt, wie mit dem Fehler verfahren wird, und der finally-Abschnitt enthält Code, der immer ausgeführt wird.

Im Grunde versucht der Code, einen Codeabschnitt auszuführen, und falls der Versuch nicht erfolgreich verläuft, wird die Steuerung an die catch-Klausel übergeben. Der catch-Abschnitt wird übersprungen, falls keine Fehler auftreten. Der finally-Abschnitt wird ausgeführt, nachdem die Abschnitte try und catch ausgeführt wurden. Die Syntax sieht wie folgt aus:


try
{
// code
}
catch
{
// code
}
finally
{
// code
}

Catch-Abschnitte

Die catch– und finally-Abschnitte sind optional, aber keinen catch-Abschnitt einzubauen, ist nicht sinnvoll. Listing C demonstriert den Einsatz von try/catch/finally. Es wird ein Fehler erzeugt, da Bezug auf ein Feld genommen wird, das auf dem Formular nicht existiert.

Listing C


Ein try/catch-Abschnitt kann den Fehler nicht verhindern, jedoch elegant damit umgehen, sodass der Nutzer nicht eine obskure Fehlermeldung im Browser sieht (siehe Listing D).

Listing D


Dies erzeugt die folgende Meldung, aber der finally-Abschnitt stellt sicher, dass das Formular auch trotz aller Fehler, die sich ereignen mögen, abgeschickt wird.


An unexpected error has occurred.
Please contact the administrator.
'document.forms.0.firstName.value'
is null or not an object

Alle Probleme können von einem einzigen catch-Abschnitt bearbeitet werden, es können aber mehrere fehlerspezifische catch-Anweisungen eingesetzt werden.

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 *