Примена на типови на исклучоци во JavaScript

Нека имаме функција која како параметар прима JSON со низа од податоци и го запишува секој елемент од оваа низа во локалното складиште:

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

Во оваа функција исклучителна ситуација може да настане на две места: при парсирање на JSON и при обид за зачувување на податоците во локалното складиште.

Нека, на пример, како обработка на грешки решивме да прикажеме одредена порака за проблемите:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('какви проблеми');
}

Нашата порака, тоа е се разбира добро, но таа воопшто не ги диференцира настанатите проблеми. Пологично би било да се прикаже порака за тоа кој конкретно проблем настана.

За да го направиме ова, ќе ги разликуваме настанатите грешки по име:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('нема повеќе простор во складиштето');
  }
  
  if (error.name == 'SyntaxError') {
    alert('некоректен JSON');
  }
}
Задание 1

Ископирајте го кодот на мојата функција saveData, а потоа без да го гледате мојот код имплементирајте ја опишаната од мене обработка на грешки.

Задание 2

Специјално, создадете една по една исклучителни ситуации кои може да настанат во функцијата saveData.