SELFHTML/Navigationshilfen JavaScript/DOM Anwendungsbeispiele | |
Fehlerbehandlung mit dem Event-Handler onError |
|
Der Sprachumfang von JavaScript erlaubt es mittlerweile, umfangreiche Anwendungen zu erstellen. Dynamische Web-Seiten enthalten teilweise umfangreiche Scripts, die in ihren Abläufen auf etliche Variablen zurückgreifen. Dabei können sich sich leicht unkontrollierbare Werte und Zustände im Programmablauf einschleichen, zum Beispiel auch durch nicht einkalkuliertes Anwenderverhalten. Seit der JavaScript-Version 1.1 steht Ihnen mit dem Event-Handler onError
ein Werkzeug zur zur Verfügung, um innerhalb des Scripts Fehler abzufangen und gezielt darauf zu reagieren.
Zur Unterdrückung von Fehlermeldungen, die zur Laufzeit eines Scripts entstehen, notieren Sie im Kopf der Datei window.onerror
. Als Wert weisen Sie den Namen einer Funktion zu, welche die Fehlerbehandlung ausführt. Der Rückgabewert der Funktion muss true
sein. Damit haben Sie Ihre eigene Fehlerbehandlung.
Der Fehlerbehandlungs-Funktion können Sie bis zu 3 optionale Parameter übergeben:
1. Nachricht: enthält die Fehlerbeschreibung des Fehlers
2. Datei: enthält den URI der fehlerverursachenden Datei
3. Zeile: enthält die Zeile in der der Fehler auftritt
Diese Art der Fehlerkontrolle können Sie für Netscape 4.x und Internet Explorer ab Version 4.x verwenden. Netscape 6 ist nicht in der Lage, die Parameter vollständig zu interpretieren. Er speichert jeweils im ersten Parameter das auslösende Eventobjekt. Opera interpretiert den an das Fensterobjekt gebundenen Event-Handler window.onerror
nicht.
Berücksichtigen Sie, dass Sie nur logische Fehler überwachen und unterdrücken können, die während der Laufzeit der Scripts entstehen. Syntaxfehler, wie z.B. fehlende Klammern usw. sind damit nicht abfangbar.
Das Beispiel zeigt eine einfach Variante der Fehlerbehandlung. Am Ende des Script-Bereichs wird eine Funktion aufgerufen, die nicht existiert.
Anzeigebeispiel: So sieht's aus
<html><head><title>Test</title> <script type="text/javascript"> window.onerror = Fehlerbehandlung; function Fehlerbehandlung (Nachricht, Datei, Zeile) { Fehler = "Fehlermeldung:\n" + Nachricht + "\n" + Datei + "\n" + Zeile; zeigeFehler(); return true; } function zeigeFehler () { alert(Fehler); } nichtda(); </script> </head><body> <a href="javascript:zeigeFehler()">Fehler</a><br> </body></html>
Beim Einlesen der Datei wird mit window.onerror = Fehlerbehandlung
angewiesen, im Fehlerfall die Funktion Fehlerbehandlung()
aufzurufen. Dieses Ereignis tritt im Beispiel am Ende des Script-Bereichs ein, wo versucht wird, die nichtvorhandene Funktion nichtda()
aufzurufen.
Die Funktion speichert mit Zeichenkettenverknüpfung die automatisch übergebenen Parameter in der Variablen Fehler
. Dann ruft sie im Beispiel die Funktion zeigeFehler()
auf. Diese Funktion dient im Beispiel lediglich dazu, den Fehler zu Demonstrationszwecken auszugeben. Mit return true
wird erreicht, dass der Fehler im Browser nicht angezeigt wird. Mit dem Rückgabewert false
würden Sie bewirken, dass der Browser den Fehler anmeckern würde.
In einer komplexeren Anwendung hätte die Funktion Fehlerbehandlung()
also alle Möglichkeiten, auf den Fehler zu reagieren. Sie könnte beispielsweise die Zeichenkette des übergebenen Parameters Nachricht
untersuchen, um herauszufinden, welcher Fehler genau aufgetreten ist. Je nach Situation könnte eine solche Funktion bewirken, dass das Script zu einem früheren Punkt im Programmablauf zurückspringt, Variablen zurücksetzt, den Cursor in ein bestimmtes Formularfeld setzt usw.
Fehlerbehandlung mit dem try..catch-Statement | |
Verweisliste als Auswahlliste | |
SELFHTML/Navigationshilfen JavaScript/DOM Anwendungsbeispiele |
© 2005 Impressum