Izņēmumu tipu pielietojums JavaScript

Pieņemsim, ka mums ir funkcija, kas parametrā saņem JSON ar datu masīvu un ieraksta katru šī masīva elementu lokālajā krātuvē:

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

Šajā funkcijā izņēmuma situācija var rasties divās vietās: parsējot JSON un mēģinot saglabāt datus lokālajā krātuvē.

Pieņemsim, ka, piemēram, kā kļūdu apstrādi mēs nolēmām izvadīt kādu ziņojumu par problēmām:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('kādas problēmas');
}

Mūsu ziņojums, tas, protams, ir labi, bet tas nekādā veidā nediferencē radušās problēmas. Loģiskāk būtu izvadīt ziņojumu par to, kāda tieši problēma radusies.

Lai to izdarītu, atšķirsim radušās kļūdas pēc to nosaukuma:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('beidzās vieta krātuvē');
  }
  
  if (error.name == 'SyntaxError') {
    alert('nepareizs JSON');
  }
}
Задание 1

Nokopējiet manas funkcijas saveData kodu, un pēc tam, neieskatoties manā kodā, realizējiet manis aprakstīto kļūdu apstrādi.

Задание 2

Speciāli pēc kārtas izveidojiet izņēmuma situācijas, kas var rasties funkcijā saveData.