Javascript Error Log Level
Xalcon
- javascript
Hallo zusammen,
ich hoffe ich finde hier Hilfe, bei einem Problem dass ich nun schon seit Ewigkeiten habe:
Wie kann ich mir anzeigen lassen, warum und vor allem wo ein JavaScript abgebrochen ist?
Der Hintergrund ist folgender: Ich programmiere aktuell einen Webdienst, dessen Frontend in JavaScript geschrieben wird und dabei JQuery verwendet. Ich habe nun aber immer wieder dass Problem, dass mein Script einfach an einer Stelle abbricht und ich dann erstmal, zum teil, Stunden suchen darf, wie weit das Skript denn nun läuft. Mir würde es aber schon helfen, wenn mir der Browser (in meinem Fall Firefox, aber gerne auch jeder beliebige andere Browser) eine Warnmeldung ausspucken würden, die in etwa folgendes aussagt "Warnung, Zugriff auf myVar in Zeile 1234: Undefined". Gibt es da irgendeine Einstellung oder ein Addon, dass mir da weiterhelfen kann? Javascript zu debuggen ist ohne diese Hilfe echt die Hölle!
Ich benutze als Addons bereits Firebug, die Firefox-Fehlerkonsole und die Web-Konsole, allerdings zeigen alle drei nur Errors an, keine Warnings.
Schonmal Danke im Vorraus,
Xalcon
Ich benutze als Addons bereits Firebug, die Firefox-Fehlerkonsole und die Web-Konsole, allerdings zeigen alle drei nur Errors an, keine Warnings.
Sicher das Du Firebug in der Firebug-Konsole die Anzeige von Warnungen auch aktiviert hast? Wenn ich alle Ausgaben aktiviere, erhalte ich bei vielen Seiten wahre Meldungsorgien.)
Auf dem Console - Reiter mal den Pfeil nach unten klicken.
Hallo,
jede Exception wird in der Fehlerkonsole aufgeführt. Dazu must du die Fehlerkonsole nicht besonders einstellen.
Warnungen sind in der Regel uninteressant. Sie ergeben sich aus statischer Code-Analyse und dem Zugriff auf obsolete Methoden. Du kannst sie im Firebug anschalten, aber in der Regel geben dir diese keinen Rückschluss auf wirkliche Fehler.
Nicht immer, wenn etwas schief geht, tritt eine Exception auf. Die Operationen, die in JavaScript eine Exception auslösen, sind sehr beschränkt. Nur weil z.B. irgendein Eigenschaftswert undefined ist, so gibt es noch keine Exception – erst wenn man auf diesen Wert bspw. Operatoren wie . und [] anwendet.
Wenn man ein Script gut programmiert, dann tritt nie eine Exception auf, selbst wenn etwas schief geht, weil man eine Objektabfragen und eine Fehlerbehandlung eingebaut hat. Du kannst also nicht erwarten, dass eine Exception in der Konsole zu sehen ist, wenn dein Script irgendwo abbricht. Wenn irgendwo in deinem Script etwas schief geht, ohne dass eine Exception auftritt, so gibtes eigentlich nur zwei Möglichkeiten:
1. An den wichtigen Stellen Objektabfragen verwenden, um die Objekte und Variablen, mit denen gearbeitet wird, auf Brauchbarkeit zu prüfen. Im Fehlerfalle kannst du selbst Exceptions werfen, z.B. throw new Error('Fehlermeldung')
.
2. Den Fehler suchen. Klassisches Debugging. Fehlersuche mit Kontrollausgaben. Haltepunkte setzen, mit dem Debugger durch den Code schreiten.
Grüße, Mathias