Java Reference
In-Depth Information
mehr). Falls Sie direkt an dieser Adressangabe den Fehler inden, haben Sie allerdings
Glück, denn leider ist diese Adressangabe nur die Stelle, wo sich ein Fehler auswirkt,
und nicht unbedingt der Entstehungsort. Dies muss nicht immer identisch sein, aber
zumindest ist der Fehler schon einmal eingegrenzt.
2. Schlimmer ist, wenn Sie zufällig einen solchen Schreibfehler gemacht haben, so dass der
falsche Begrif wieder einen sinnvollen Token und keinen syntaktischen Widerspruch
ergibt. Denn das wird ein viel ernsteres Problem. Nehmen wir ein Beispiel aus der nor-
malen Sprache. Sie wollten beispielsweise lehr schreiben und haben leer getippt  - ein
ebenfalls sinnvolles Wort. Die Rechtschreibprüfung Ihrer Textverarbeitung beispiels-
weise wird Ihnen den Fehler nicht anzeigen. Und in einem analogen Fall würde der Par-
ser oder Interpreter bei der Programmierung kein Problem melden, wenn Sie nur Token
vertauschen und sich kein syntaktischer Widerspruch ergibt. Gerade JavaScript ist hier
durch die lose Typisierung im Zusammenhang mit Variablen extrem fehleranfällig.
Betrachten Sie folgendes Fragment:
Listing 6.1■ Ein schwer zu entdeckender Fehler
var meineVariable = 42;
mieneVariable = 55;
document.write(meineVariable);
Das Fragment zeigt eine syntaktisch fehlerfreie JavaScript-Struktur. Geplant soll sein, dass
eine Variable meineVariable eingeführt, im Wert geändert und dann ausgegeben wird. Nur
gibt es bei der zweiten Anweisung einen Buchstabendreher im Bezeichner der Variablen.
Durch die lose Typisierung wird das aber zu keinem Fehler führen. Es wird nur einfach
temporär eine neue Variable mieneVariable erzeugt und der Wert der eigentlich zu ändern-
den Variablen meineVariable wird nicht geändert. Und bei der Ausgabe wundern Sie sich
dann. Oder noch schlimmer - Sie wundern sich nicht und der Fehler wird gar nicht bemerkt!
In so einem Fall haben Sie ohne Hilfsmittel nur die Chance, dass Sie den Fehler im Quelltext
durch aufmerksames Lesen oder Analyse des Resultats inden (sehr schwer  - lassen Sie
sich nicht durch dieses extrem einfache Exempel täuschen). Oder aber Sie greifen auf Test-
ausgaben oder gar einen Debugger zurück (siehe weiter hinten).
6.1.1.2■Syntaktische Fehler
Bei syntaktischen Fehlern in einem Skript (Fehler bei der Verwendung der Sprachsyntax)
wird der Interpreter in der Regel die Abarbeitung unterbrechen. Viele syntaktische Fehler
beruhen auf typograischen Fehlern, aber beileibe nicht alle. Denn dieser Typ von Fehler
beinhaltet auch die falsche Verwendung von korrekten Ausdrücken oder Token (beispiels-
weise so etwas wie for (i == 0; i < 256;i++) - ein Vergleich statt einer Wertzuweisung
der Zählvariable). Leider gilt auch hier, dass nicht unbedingt die Adressangabe des Fehlers
in der Fehleranzeige eines Browsers der Entstehungsort des Fehlers sein muss.
6.1.1.3■Laufzeitfehler
Es gibt auch Programmierfehler, die sich erst zur Laufzeit des Skripts auswirken. Unter
Umständen sogar nur in einer ganz speziischen Konstellation. Solche Fehler werden auf
logische Unzulänglichkeiten im Programmaufbau zurückzuführen sein. Hierbei haben Sie
 
Search WWH ::




Custom Search