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:

javascriptfunction 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:

javascripttry {
  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:

javascripttry {
  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');
  }
}
Задание 1

Kopirajte kodo moje funkcije saveData, nato pa brez vpogleda v mojo kodo implementirajte opisano obdelavo napak.

Задание 2

Namerno zaporedoma ustvarite izjemne situacije, ki lahko nastanejo v funkciji saveData.