Išimčių tipų panaudojimas JavaScript
Tarkime, turime funkciją, kuri parametru priima JSON su duomenų masyvu ir įrašo kiekvieną šio masyvo elementą į vietinę saugyklą:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Šioje funkcijoje išimtinė situacija gali atsirasti dviejose vietose: analizuojant JSON ir bandant išsaugoti duomenis į vietinę saugyklą.
Tarkime, pavyzdžiui, kaip klaidų apdorojimą nusprendėme rodyti tam tikrą pranešimą apie problemą:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('kažkokios problemos');
}
Mūsų pranešimas, žinoma, yra gerai, bet jis jokiu būdu neišskiria kilusių problemų. Logiškiau būtų rodyti pranešimą apie tai, kokia konkrečiai problema atsirado.
Norėdami tai pasiekti, atskirkime kilusias klaidas pagal pavadinimą:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('pasibaigė vieta saugykloje');
}
if (error.name == 'SyntaxError') {
alert('neteisingas JSON');
}
}
Nukopijuokite mano funkcijos saveData kodą,
o tada nepažiūrėdami į mano kodą įgyvendinkite
mano aprašytą klaidų apdorojimą.
Sąmoningai paeiliui sukurkite išimlines
situacijas, kurios gali atsirasti funkcijoje
saveData.