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:

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

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

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

Skopírujte kód mojej funkcie saveData, a potom nehľadiac do môjho kódu implementujte popísané spracovanie chýb.

Задание 2

Zámerne postupne vytvorte výnimočné situácie, ktoré môžu nastať vo funkcii saveData.