Читать книгу JavaScript für Ungeduldige - Cay Horstmann - Страница 94
2.12Ausnahmen abfangen
ОглавлениеEinige Methoden geben einen Fehlerwert zurück, wenn sie mit ungültigen Argumenten aufgerufen werden. Beispielsweise gibt parseFloat('') den Wert NaN zurück. Es ist jedoch nicht immer sinnvoll, einen Fehlerwert zurückzugeben. Es kann auch weniger offensichtliche Möglichkeiten geben, zwischen gültigen und ungültigen Werten zu unterscheiden. Die Methode parseFloat ist dafür ein gutes Beispiel. Der Aufruf parseFloat('NaN') gibt NaN zurück, der Aufruf parseFloat('Infinity') den Wert Infinity. Wenn parseFloat also NaN zurückgibt, können Sie nicht erkennen, ob die Methode den gültigen String 'NaN' oder ein ungültiges Argument untersucht hat.
In JavaScript kann eine Methode auch einen alternativen Exit-Pfad nehmen, wenn sie nicht in der Lage ist, ihre Aufgabe auf reguläre Weise zu erledigen. Anstatt einen Wert zurückzugeben, kann sie auch eine Exception auslösen. In diesem Fall wird die Ausführung nicht mit dem Code fortgesetzt, der die Methode aufgerufen hat. Stattdessen wird eine catch-Klausel ausgeführt. Wird diese Exception nirgendwo mit einer solchen Klausel abgefangen, wird das Programm beendet.
Um eine Exception abzufangen, verwenden Sie die Anweisung try. In ihrer einfachsten Form sieht sie wie folgt aus:
try {
Code
mehr Code
noch mehr Code
} catch {
Handler
}
Der der Code an irgendeiner Stelle innerhalb des try-Blocks eine Exception auslöst, überspringt das Programm den Rest des Blocks und führt stattdessen den Handler-Code in der catch-Klausel aus.
Nehmen wir zum Beispiel an, Sie wollen einen empfangenen JSON-String parsen. Der Aufruf von JSON.parse löst eine Exception aus, wenn das Argument kein gültiger JSON-Code ist. Diese Exception können Sie in der catch-Klausel behandeln:
let input = ... // Liest eine Eingabe aus irgendeiner Quelle
try {
let data = JSON.parse(input)
// Wird die Ausführung hier fortgesetzt, ist die Eingabe gültig
// Verarbeitet die Daten
...
} catch {
// Kümmert sich darum, dass die Eingabe ungültig ist
...
}
Im Handler können Sie die Information protokollieren, dass Ihnen ein ungültiger JSON-String übergeben wurde, oder sonstige Maßnahmen treffen, um mit dem Problem umzugehen.
In Kapitel 3 sehen wir uns noch weitere Varianten von try-Anweisungen an, die Ihnen mehr Kontrolle über die Behandlung von Exceptions geben. Dort lernen Sie auch, wie Sie eigene Exceptions auslösen.