JavaScript'te İstisna Türlerinin Uygulanması

Bir parametre olarak bir dizi veri içeren JSON alan ve bu dizinin her bir öğesini yerel depolamaya yazan bir fonksiyonumuz olduğunu varsayalım:

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

Bu fonksiyonda, istisnai bir durum iki yerde ortaya çıkabilir: JSON ayrıştırılırken ve veriler yerel depolamaya kaydedilmeye çalışılırken.

Örneğin, hata işleme olarak bazı sorunlar hakkında bir mesaj göstermeye karar verdiğimizi varsayalım:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('bazı sorunlar var');
}

Mesajımız elbette iyi, ancak ortaya çıkan sorunları hiçbir şekilde ayırt etmiyor. Hangi sorunun ortaya çıktığı hakkında bir mesaj göstermek daha mantıklı olurdu.

Bunun için ortaya çıkan hataları isimlerine göre ayırt edelim:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('depolama alanı doldu');
  }
  
  if (error.name == 'SyntaxError') {
    alert('geçersiz JSON');
  }
}
Задание 1

Benim saveData fonksiyonumun kodunu kopyalayın, ardından benim koduma bakmadan tarif ettiğim hata işlemeyi uygulayın.

Задание 2

Özellikle sırayla, saveData fonksiyonunda ortaya çıkabilecek istisnai durumlar yaratın.