Kivételtípusok alkalmazása JavaScriptben

Tegyük fel, hogy van egy függvényünk, amely paraméterként egy JSON-t fogad el egy adattömbbel, és ennek a tömbnek minden elemet a lokális tárolóba ír:

javascriptfunction saveData(json) {
  let arr = JSON.parse(json);
  
  for (let i = 0; i < arr.length; i++) {
    localStorage.setItem(i, arr[i]);
  }
}

Ebben a függvényben kivételes helyzet két helyen fordulhat elő: a JSON elemzése során, és az adatok lokális tárolóba mentésének megkísérlésekor.

Tegyük fel például, hogy a hibakezelésként elhatároztuk, hogy megjelenítünk egy üzenetet a problémákról:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('valamilyen problémák');
}

Az üzenetünk persze jó, de egyáltalán nem különbözteti meg az előforduló problémákat. Logikusabb lenne kiírni egy üzenetet arról, hogy pontosan milyen probléma merült fel.

Ehhez különböztessük meg a keletkezett hibákat a neve alapján:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('elfogyott a hely a tárolóban');
  }
  
  if (error.name == 'SyntaxError') {
    alert('érvénytelen JSON');
  }
}
Задание 1

Másolja le a saveData függvényem kódját, majd anélkül, hogy belenézne a kódomba, valósítsa meg általam leírt hibakezelést.

Задание 2

Hozzon létre szándékosan, egymás után olyan kivételes helyzeteket, amelyek a saveData függvényben előfordulhatnak.