Ужыванне тыпаў выключэнняў у 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.