Anvendelse av unntakstyper i JavaScript

La oss si at vi har en funksjon som tar imot JSON med en datamatrise som parameter og skriver hvert element i denne matrisen til lokal lagring:

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

I denne funksjonen kan unntakssituasjoner oppstå på to steder: under analyse av JSON og ved forsøk på å lagre data i den lokale lagringen.

La oss si at for feilhåndtering bestemte vi oss for å vise en melding om problemene:

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

Meldingen vår er selvfølgelig bra, men den differensierer ikke mellom de oppståtte problemene. Det ville vært mer logisk å vise en melding om hvilket spesifikt problem som oppstod.

For å gjøre dette, kan vi skille mellom feilene som oppstår ved navn:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('plass i lagringen er oppbrukt');
  }
  
  if (error.name == 'SyntaxError') {
    alert('ugyldig JSON');
  }
}
Задание 1

Kopier koden til min funksjon saveData, og deretter, uten å se på koden min, implementer feilhåndteringen jeg har beskrevet.

Задание 2

Skap spesifikt etter tur unntakssituasjoner som kan oppstå i funksjonen saveData.