Uporaba tipov izjem v JavaScript
Recimo, da imamo funkcijo, ki kot parameter sprejme JSON z nizom podatkov in vsak element tega niza zapiše v lokalno shrambo:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
V tej funkciji lahko izjemna situacija nastane na dveh mestih: pri razčlenjevanju JSON in pri poskusu shranjevanja podatkov v lokalno shrambo.
Recimo, da smo se na primer za obdelavo napak odločili prikazati določeno sporočilo o težavah:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('nekakšne težave');
}
Naše sporočilo je seveda dobro, vendar nikakor ne razlikuje nastalih težav. Bolj logično bi bilo prikazati sporočilo o tem, katera točno težava je nastala.
Za to ločimo nastale napake po imenu:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('zmanjkalo je prostora v shrambi');
}
if (error.name == 'SyntaxError') {
alert('neveljaven JSON');
}
}
Kopirajte kodo moje funkcije saveData,
nato pa brez vpogleda v mojo kodo implementirajte
opisano obdelavo napak.
Namerno zaporedoma ustvarite izjemne
situacije, ki lahko nastanejo v funkciji
saveData.