Utilizarea tipurilor de excepții în JavaScript
Să presupunem că avem o funcție care primește ca parametru un JSON cu un array de date și scrie fiecare element al acestui array în stocarea locală:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
În această funcție, o situație excepțională poate apărea în două locuri: la parsarea JSON-ului și la încercarea de a salva datele în stocarea locală.
Să presupunem, de exemplu, că pentru gestionarea erorilor am decis să afișăm un mesaj despre probleme:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('niște probleme');
}
Mesajul nostru este, desigur, bun, dar acesta nu diferențiază problemele apărute. Ar fi mai logic să afișăm un mesaj despre ce problemă exact a apărut.
Pentru a face acest lucru, să distingem erorile apărute după nume:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('spațiul de stocare s-a epuizat');
}
if (error.name == 'SyntaxError') {
alert('JSON incorect');
}
}
Copiați codul funcției mele saveData,
apoi, fără să vă uitați la codul meu, implementați
gestionarea erorilor pe care am descris-o.
Crează intenționat, pe rând, situațiile excepționale
care pot apărea în funcția
saveData.