Poikkeusten sieppaus sisäkkäisessä koodissa JavaScriptissä
Poikkeusten erikoisuus ja kätevyys piilee siinä, että niitä voidaan siepata millä tahansa koodin sisäkkäisyystasolla. Katsotaan esimerkkiä. Oletetaan, että meillä on funktio, joka tallentaa tiedot paikalliseen tallennustilaan:
function save(str) {
localStorage.setItem('key', str);
}
Kuten jo tiedät, kun tallennustila täyttyy,
metodi setItem heittää poikkeuksen.
Poikkeusta ei kuitenkaan ole pakko siepata
funktion save sisällä.
Jokainen funktion kutsu voidaan kääriä
try-lohkoon:
try {
save('jokin merkkijono');
} catch (error) {
alert('Paikallinen tallennustila on täynnä!');
}
Annettu funktio, joka muuntaa JSONin taulukoksi:
function getArr(json) {
return JSON.parse(json);
}
Seuraavassa koodissa JSONista saadaan taulukko:
let arr = getArr('[1,2,3,4,5]');
console.log(arr);
Kääri funktion kutsu try-catch-rakenteeseen.