Përdorimi i llojeve të përjashtimeve në JavaScript
Le të themi se kemi një funksion që pranon si parametër JSON me një grup të dhënash dhe shkruan çdo element të këtij grupi në depozitën lokale:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Në këtë funksion, një situatë e jashtëzakonshme mund të lindë në dy vende: gjatë analizimit të JSON dhe gjatë përpjekjes për të ruajtur të dhënat në depozitën lokale.
Le të themi, për shembull, që si trajtim i gabimeve ne kemi vendosur të shfaqim një mesazh për problemet:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('disa probleme');
}
Mesazhi ynë, sigurisht që është i mirë, por ai nuk i diferencon problemet e shkaktuara. Do të ishte më logjike të shfaqej një mesazh për atë se çfarë problemi specifik lindi.
Për këtë, le t'i dallojmë gabimet e shkaktuara sipas emrit:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('hapësira në depozitë ka mbaruar');
}
if (error.name == 'SyntaxError') {
alert('JSON i pasaktë');
}
}
Kopjojeni kodin e funksionit tim saveData,
dhe pastaj pa parë në kodin tim të realizoni
trajtimin e gabimeve që unë përshkrova.
Qëllimisht, njëri pas tjetrit, krijoni situata
të jashtëzakonshme që mund të lindin në funksionin
saveData.