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:
function 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:
try {
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:
try {
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');
}
}
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.
Xüsusi olaraq növbə ilə saveData funksiyasında
yarana biləcək istisna vəziyyətlər yaradın.