Utilizarea tipurilor de excepții în JavaScript

Să presupunem că avem o funcție care primește ca parametru un JSON cu un array de date și scrie fiecare element al acestui array în stocarea locală:

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

În această funcție, o situație excepțională poate apărea în două locuri: la parsarea JSON-ului și la încercarea de a salva datele în stocarea locală.

Să presupunem, de exemplu, că pentru gestionarea erorilor am decis să afișăm un mesaj despre probleme:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('niște probleme');
}

Mesajul nostru este, desigur, bun, dar acesta nu diferențiază problemele apărute. Ar fi mai logic să afișăm un mesaj despre ce problemă exact a apărut.

Pentru a face acest lucru, să distingem erorile apărute după nume:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('spațiul de stocare s-a epuizat');
  }
  
  if (error.name == 'SyntaxError') {
    alert('JSON incorect');
  }
}
Задание 1

Copiați codul funcției mele saveData, apoi, fără să vă uitați la codul meu, implementați gestionarea erorilor pe care am descris-o.

Задание 2

Crează intenționat, pe rând, situațiile excepționale care pot apărea în funcția saveData.