Bei der Fehlerbehandlung geht es darum Fehler abzufangen und kontrolliert darauf zu reagieren. Dabei kann es sich um Programmierfehler, Eingabefehler oder andere nicht bedachte Probleme handeln, die ohne Behandlung zu einem unkontrollierten Abbruch des JavaScript-Interpreters führen würden. Mit folgenden Schlüsselwörtern kann eine Fehlerbehandlung definiert werden:
Mit der „try“-Anweisung kann ein Block definiert werden, innerhalb dessen der Code auf Fehler getestet werden kann. Mit der „catch“-Anweisung kann ein Block definiert werden, in dem Fehler behandelt werden können, die in einem zugehörigen „try“-Block aufgetreten sind. Dabei wird dem „catch“-Block ein Objekt übergeben, das Informationen zum aufgetretenen Fehler enthält:
HTML-Datei:
Ergebnis:
a1 =
Fehlermeldung =
Das Objekt, das bei einem Fehler der „catch“-Anweisung übergeben wird, hat folgende Eigenschaften:
Das Attribut „name“ des Fehler-Objekts kann folgende Werte annehmen:
Beispiel zum Fehlertyp „RangeError“:
HTML-Datei:
Ergebnis:
a2.toFixed(200) =
Fehlertyp =
Fehlermeldung =
Beispiel zum Fehlertyp „ReferenceError“:
HTML-Datei:
Ergebnis:
a3 =
Fehlertyp =
Fehlermeldung =
Beispiel zum Fehlertyp „SyntaxError“:
HTML-Datei:
Ergebnis:
str4 =
Fehlertyp =
Fehlermeldung =
Beispiel zum Fehlertyp „TypeError“:
HTML-Datei:
Ergebnis:
str5.isFinite() =
Fehlertyp =
Fehlermeldung =
Beispiel zum Fehlertyp „URIError“:
HTML-Datei:
Ergebnis:
decodeURI(uri6) =
decodeURI("%%%") =
Fehlertyp =
Fehlermeldung =
Mit „throw“ (engl. werfen) kann innerhalb eines „try“-Blocks ein Fehler ausgelöst (geworfen) werden. Dabei kann eine Zeichenkette, eine Zahl oder ein Objekt an den zugehörigen „catch“-Block übergeben werden:
HTML-Datei:
Ergebnis:
Status:
Zahl:Status:
Mit „finally“ kann ein Anweisungsblock definiert werden, der auf jeden Fall ausgeführt wird, unabhängig von dem Resultat der Fehlerbehandlung mit „try“ und „catch“:
HTML-Datei:
Ergebnis:
Status:
Als Abschlussübung kannst du das vorhergehende Beispiel erweitern, so dass zusätzlich noch entsprechende Fehlermeldungen ausgegeben werden, wenn das Feld leer ist oder keine Zahl eingegeben wurde. Außerdem soll eine Bestätigung ausgegeben werden, wenn alle Bedingungen erfüllt wurden und der Status zurückgesetzt werden, wenn in das Edit-Feld geklickt wird:
Status:
Gehe dabei wie folgt vor:
Die Lösung kannst du dir hier herunterladen: