Utumiaji wa Aina za Isipokuwa katika JavaScript
Hebu tuchukulie tuna kazi inayokubali JSON yenye safu ya data na kuandika kila kipengele cha safu hiyo kwenye hifadhi ya ndani:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Katika kazi hii, hali ya kipekee inaweza kutokea katika sehemu mbili: wakati wa kuchambua JSON na wakati wa kujaribu kuhifadhi data kwenye hifadhi ya ndani.
Hebu tuchukulie, kwa mfano, kama utatuzi wa makosa tuliamua kuonyesha ujumbe fulani kuhusu matatizo:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('kuna matatizo fulani');
}
Ujumbe wetu, ni jambo jema, lakini hauwezi kutofautisha matatizo yaliyotokea. Kina mantiki zaidi kungekuwa ni kuonyesha ujumbe kuhusu ni tatizo gani hasa lilitokea.
Ili kufanya hivyo, tutatofautisha makosa yaliyotokea kwa jina:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('nafasi ya hifadhi imekwisha');
}
if (error.name == 'SyntaxError') {
alert('JSON siyo sahihi');
}
}
Nakili msimbo wa kazi yangu saveData,
kisha bila kuangalia msimbo wangu utekeleze
utunzaji wa makosa nilioelezea.
Kwa makusudi, kwa mpangilio, unda hali za kipekee
ambazo zinaweza kutokea katika kazi
saveData.