Zum Inhalt springen

Fehler / Fehlerbehandlung

Es gibt verschiedene Fehlertypen. Globale sind:

  • EvalError greift, wenn bei eval ein Fehler auftritt
  • SyntaxError greift, wenn bei eval oder einem regulären Ausdrück ein Syntaxfehler vorhanden ist
  • RangeError greift, wenn eine numerische Variable oder ein Parameter außerhalb des Gültigkeitsbereichs liegt
  • TypeError greift, wenn eine Variable oder ein Parameter nicht valide ist
  • ReferenceError greift, wenn beim Zugriff auf eine Variable oder Funktion selbige nicht vorhanden ist

Ein Syntaxfehler ist ein Fehler der durch Fehler in der „Grammatik“ der Programmiersprache auftritt. So ist zum Beispiel das Vergessen einer Klammer ein Syntaxfehler. Der Browser führt das Programm bis zum Fehler aus und bricht dann ab.

Laufzeitfehler treten erst beim Ausführen des Programms auf. Dies setzt voraus das vorher kein Syntaxfehler aufgetreten ist. Eine Ursache kann zum Beispiel eine falsche Eingabe eines Users sein.

Weiterhin gibt es Semantik Fehler. Diese werden auch als logische Fehler bezeichnet. Bei diesen ist das Programm problemlos ausführbar aber ergibt ein falsches Ergebnis. Als Beispiel: es sollen zwei Werte addiert werden. Durch die Definition als String wird dies nicht durchgeführt. Aber es tritt auch kein Fehler auf.

Ein Hinweis auf einen Fehler kann eine leere Webseite sein.

Visual Studio Code bietet eine Ansicht an in der auf evtl. Fehler hingewiesen wird. Unter Ansicht/Fehlerliste kann man sich dieses anzeigen lassen.

Im Browser Firefox kann über das Tastenkürzel F12 die Debug-Konsole aufgerufen werden:

Der Zweck von „use strict“ besteht darin, anzuzeigen, dass der Code im „strict mode“ ausgeführt werden soll. Im strikten Modus können Sie beispielsweise keine nicht deklarierten Variablen verwenden.

Eine einfache Variante um einen Fehler abzufangen bietet der try-catch Codeblock.

try {
Fehler tritt auf 
}

catch (error) {
Fehlerbehandlung }

Über finally kann Code definiert werden der immer ausgeführt wird. Egal ob ein Fehler auftritt oder nicht.

try {
Fehler tritt auf 
}
catch (error) {
Fehlerbehandlung 
}
finally { 
Der code wird auf jeden Fall ausgeführt, egal ob ein Feher auftritt oder nicht.
}

Um eine Fehlermeldung wie NaN (Not a Number) abzufangen kann eine einfache If-Funktion helfen:

function beispiel(x) {
  if (isNaN(x)) {
    return 'Not a Number! Bitte eine Zahl eingeben';
  }

Uncaught ReferenceError: eingabe is not defined
Bitte beachten: damit eine Funktion eine Eingabe eines Users feststellen kann muss mit Hilfe einer ID der Name festgelegt werden. Beispiel:

<!DOCTYPE html><html>
<body>Benutze document.getElementById und lass den eingebenen Wert ausgeben<p>
Bitte den Wert eingeben: <input type="text" id="eingab">
 <button type="button" class="block" onclick="ausgabe()">Wert ausgeben</button> 
</p>
<script type="text/javascript" >
function ausgabe(){document.getElementById(eingabe);
alert(eingabe);}
</script>
</body>
</html>

Hier gibt es eine Fehlersammlung. Du kannst erst versuchen den Fehler im Bild zu finden

Weiter zur Arbeit mit Formularen