Երևակայական տիպերի կիրառությունը 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
ֆունկցիայում։