Anwendung von Ausnahmetypen in JavaScript
Nehmen wir an, wir haben eine Funktion, die als Parameter JSON mit einem Datenarray entgegennimmt und jedes Element dieses Arrays im lokalen Speicher schreibt:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
In dieser Funktion kann eine Ausnahmesituation an zwei Stellen auftreten: beim Parsen des JSON und beim Versuch, Daten im lokalen Speicher zu speichern.
Nehmen wir an, wir haben uns zur Fehlerbehandlung entschieden, eine bestimmte Meldung über die Probleme anzuzeigen:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('irgendwelche Probleme');
}
Unsere Meldung ist zwar gut, aber sie differenziert nicht zwischen den aufgetretenen Problemen. Es wäre logischer, eine Meldung darüber anzuzeigen, welches genau Problem aufgetreten ist.
Um dies zu erreichen, unterscheiden wir die aufgetretenen Fehler anhand ihres Namens:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('Speicherplatz ist voll');
}
if (error.name == 'SyntaxError') {
alert('ungültiges JSON');
}
}
Kopieren Sie den Code meiner Funktion saveData,
und implementieren Sie dann, ohne in meinen Code zu schauen,
die von mir beschriebene Fehlerbehandlung.
Erzeugen Sie gezielt nacheinander Ausnahmesituationen,
die in der Funktion saveData auftreten können.