Zastosowanie typów wyjątków w JavaScript

Załóżmy, że mamy funkcję, która przyjmuje jako parametr JSON z tablicą danych i zapisuje każdy element tej tablicy w lokalnej pamięci:

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

W tej funkcji sytuacja wyjątkowa może wystąpić w dwóch miejscach: podczas parsowania JSON i przy próbie zapisania danych w lokalnej pamięci.

Załóżmy, że na przykład jako obsługę błędów postanowiliśmy wyświetlić pewną informację o problemach:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('jakieś problemy');
}

Nasza wiadomość to, oczywiście, dobrze, ale w ogóle nie różnicuje powstałych problemów. Bardziej logiczne byłoby wyświetlenie komunikatu o tym, jaki dokładnie problem wystąpił.

Aby to zrobić, rozróżnijmy powstałe błędy po nazwie:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('skończyło się miejsce w pamięci');
  }
  
  if (error.name == 'SyntaxError') {
    alert('nieprawidłowy JSON');
  }
}
Задание 1

Skopiuj kod mojej funkcji saveData, a następnie nie podglądając w mój kod zaimplementuj opisaną przeze mnie obsługę błędów.

Задание 2

Specjalnie po kolei stwórz sytuacje wyjątkowe, które mogą wystąpić w funkcji saveData.