Aplikácia typov výnimiek v JavaScripte
Majme funkciu, ktorá ako parameter prijíma JSON s poľom údajov a každý prvok tohto poľa zapíše do lokálneho úložiska:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
V tejto funkcii môže výnimočná situácia nastať na dvoch miestach: pri analýze JSON a pri pokuse o uloženie údajov do lokálneho úložiska.
Povedzme, že ako spracovanie chýb sme sa rozhodli zobraziť nejakú správu o problémoch:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('nejaké problémy');
}
Naša správa je síce dobrá, ale vôbec nerozlišuje vzniknuté problémy. Logickejšie by bolo zobraziť správu o tom, aký konkrétny problém nastal.
Na to rozlíšime vzniknuté chyby podľa mena:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('minulo sa miesto v úložisku');
}
if (error.name == 'SyntaxError') {
alert('nekorektný JSON');
}
}
Skopírujte kód mojej funkcie saveData,
a potom nehľadiac do môjho kódu implementujte
popísané spracovanie chýb.
Zámerne postupne vytvorte výnimočné
situácie, ktoré môžu nastať vo funkcii
saveData.