Primena tipova izuzetaka u JavaScript

Neka postoji funkcija koja parametrima prima JSON sa nizom podataka i upisuje svaki element tog niza u lokalnu memoriju:

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

U ovoj funkciji izuzetna situacija može nastati na dva mesta: pri parsiranju JSON-a i pri pokušaju čuvanja podataka u lokalnu memoriju.

Neka, na primer, kao obradu grešaka odlučimo da prikažemo određenu poruku o problemima:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('neki problemi');
}

Naša poruka je, naravno, dobra, ali ona nikako ne razlikuje nastale probleme. Logičnije bi bilo prikazati poruku o tome koji je tačno problem nastao.

Da bismo to uradili, razlikovaćemo nastale greške po imenu:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('puno je mesta u memoriji');
  }
  
  if (error.name == 'SyntaxError') {
    alert('neispravan JSON');
  }
}
Задание 1

Kopirajte kod moje funkcije saveData, a zatim ne gledajući u moj kod implementirajte opisano rukovanje greškama.

Задание 2

Namerno, redom, stvorite izuzetne situacije koje mogu nastati u funkciji saveData.