SELFHTML/Navigationshilfen JavaScript/DOM Anwendungsbeispiele |
Fehlerbehandlung mit dem Eventhandler onError | |
Der Sprachumfang von JavaScript erlaubt es mittlerweile, umfangreiche Anwendungen zu erstellen. Dynamische Webseiten 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 Eventhandler 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 MS Internet Explorer ab Version 4.x verwenden. Netscape 6 ist leider nicht in der Lage, die Parameter vollständig zu interpretieren. Er speichert jeweils im ersten Parameter das auslösende Eventobjekt. Opera 5.12 interpretiert den an das Fensterobjekt gebundenen Eventhandler 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 JavaScriptblocks wird eine Funktion aufgerufen, die nicht existiert.
Anzeigebeispiel: So sieht's aus
<html><head><title>Test</title> <script type="text/javascript"> <!-- window.onerror = meinFehler; function meinFehler(Nachricht,Datei,Zeile) { Fehler = "Fehlermeldung:\n"+ Nachricht+"\n"+Datei+"\n"+Zeile; zeigeFehler(); return true; } function zeigeFehler() { alert(window.Fehler) } nichtda(); //--> </script> </head><body> <a href="javascript:zeigeFehler()">Fehler</a><br> </body></html> |
Beim Einlesen der Datei wird mit window.onerror = meinFehler
angewiesen, im Fehlerfall die Funktion meinFehler()
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 meinFehler()
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 |
© 2001 selfhtml@teamone.de