JavaScript-də istisna növlərinin tətbiqi

Tutaq ki, bizim parametr kimi məlumat massivini ehtiva edən JSON qəbul edən və bu massivin hər bir elementini lokal saxlanc yaddaşına yazan funksiyamız var:

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

Bu funksiyada istisna vəziyyəti iki yerdə yarana bilər: JSON-u təhlil edərkən və məlumatları lokal saxlanca yazmağa cəhd edərkən.

Tutaq ki, məsələn, səhv emalı kimi biz müəyyən problem mesajını göstərməyə qərar verdik:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('bəzi problemlər');
}

Bizim mesajımız, əlbəttə ki, yaxşıdır, amma o, yaranan problemləri heç cür fərqləndirmir. Daha məntiqli olardı, hansı xüsusi problemin yaranması barədə məlumat vermək.

Bunun üçün yaranan səhvləri ada görə fərqləndirək:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('saxlanc yaddaşında yer qurtardı');
  }
  
  if (error.name == 'SyntaxError') {
    alert('səhv JSON');
  }
}
Задание 1

Mənim saveData funksiyamın kodunu köçürün, və sonra mənim koduma gizlincə baxmadan təsvir etdiyim səhv emalını həyata keçirin.

Задание 2

Xüsusi olaraq növbə ilə saveData funksiyasında yarana biləcək istisna vəziyyətlər yaradın.