გამონაკლისების ტიპების გამოყენება JavaScript-ში
დავუშვათ, გვაქვს ფუნქცია, რომელიც პარამეტრად იღებს JSON-ს მონაცემების მასივით და ჩაწერს ამ მასივის ყოველ ელემენტს ლოკალურ შესანახში:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
ამ ფუნქციაში გამონაკლისური სიტუაცია შეიძლება წარმოიშვას ორ ადგილას: JSON-ის გარჩევისას და მონაცემების ლოკალურ შესანახში შენახვის მცდელობისას.
დავუშვათ, მაგალითად, რომ შეცდომების დასამუშავებლად ჩვენ გადავწყვიტეთ გამოგვეტანა გარკვეული შეტყობინება პრობლემების შესახებ:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('რაღაც პრობლემებია');
}
ჩვენი შეტყობინება, რა თქმა უნდა, კარგია, მაგრამ ის არ ადიფერენცირებს წარმოშობილ პრობლემებს. უფრო ლოგიკური იქნებოდა გამოგვეტანა შეტყობინება იმის შესახებ, თუ რა სახის პრობლემა წარმოიშვა.
ამისათვის განვასხვავოთ წარმოშობილი შეცდომები მათი სახელის მიხედვით:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('აღიწერა ადგილი შესანახში');
}
if (error.name == 'SyntaxError') {
alert('არასწორი JSON');
}
}
დააკოპირეთ ჩემი ფუნქციის saveData კოდი,
შემდეგ კი ჩემს კოდში ჩახედვის გარეშე რეალიზაცია გაუკეთეთ
ჩემს მიერ აღწერილ შეცდომათა დამუშავებას.
განზრახ, მონაცვლეობით შექმენით გამონაკლისური
სიტუაციები, რომლებიც შეიძლება წარმოიშვას ფუნქციაში
saveData.