Sie sind hier 629
Was übrig bleibt
5. Mit Ausnahmen umgehen
JavaScript ist in vielen Dingen nicht sehr streng. Trotzdem kommt es vor, dass
etwas so sehr danebengeht, dass der Browser Ihren Code nicht weiter ausführen
kann. Meistens wird dann in der Konsole eine entsprechende Meldung ausgegeben.
Ein Beispiel dazu wollen wir uns jetzt ansehen. Erstellen Sie hierfür eine einfache
HTML-Seite, die im body ein einzelnes Element enthält:
window.onload = function() {
try {
var message = document.getElementById("messge");
message.innerHTML = "Hier ist die Nachricht!";
} catch (error) {
console.log("Fehler! " + error.message);
}
};
window.onload = function() {
var message = document.getElementById("messge");
message.innerHTML = "Hier ist die Nachricht!";
};
JavaScript-Konsole
Uncaught TypeError: Cannot set
property 'innerHTML' of null
Dazu gehört der folgende JavaScript-Code:
<div id="message"></div>
Rufen Sie die Seite bei geöffneter Konsole in Ihrem Browser auf. Können
Sie den Fehler finden? Die ID des <div>-Elements enthält einen Tippfehler.
Dadurch schlägt das Auslesen seines Inhalts fehl, und die Variable message
hat den Wert null. Aus dem Grund kann auf die innerHTML-Eigenschaft von
null nicht zugegriffen werden.
Ein Fehler, der wie in unserem Beispiel die Ausführung Ihres Codes stoppt,
wird Ausnahme genannt. JavaScript besitzt einen Mechanismus namens
try/catch, mit dessen Hilfe Sie Ausnahmen finden und abfangen können. Anstatt die
Ausführung anzuhalten, können Sie eine alternative Aktion durchführen (etwas anderes
probieren, dem Benutzer eine andere Darstellung anbieten usw.).
try/catch
Die Verwendung von try/catch funktioniert so: Der Code, der ausprobiert (engl. try) werden soll,
kommt in den try-Block. Es folgt ein catch-Block, der ausgeführt wird, wenn es bei der Ausführung
des try-Blocks zu einem Fehler kommt. Auf das Schlüsselwort catch folgt ein Paar runder Klammern,
die einen Variablennamen (der große Ähnlichkeit mit einem Funktionsparameter hat) enthalten. Geht
etwas schief und die Ausnahme wird abgefangen, wird die Variable einem Wert zugewiesen, der mit
der Ausnahme in Zusammenhang steht, oftmals einem Error-Objekt. Hier ein Beispiel:
Wir haben unseren Code in einen try-Block verlagert.
Hier versuchen wir, der innerHTML-
Eigenschaft von message (die den Wert
null hat) einen String zuzuweisen.
Diese Codezeile wird ausgeführt, wenn der Code
im try-Block eine Ausnahme auslöst. Wir geben hier
einfach die message-Eigenschaft des error-Objekts
auf der Konsole aus. Danach geht die Ausführung
mit der Zeile nach try/catch weiter.
Je nach Art des Fehlers könnten Sie hier
auch etwas wesentlich Intelligenteres tun.
Der Code hat einen Fehler.
Können Sie ihn finden?

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.