Poikkeusten sieppaus JavaScriptissä
Poikkeusten sieppaamiseen käytetään
try-catch-rakennetta. Sen
syntaksi on seuraava:
try {
// koodi
} catch (error) {
// virheen käsittely
}
try-lohkossa tulee sijoittaa koodi,
joka voi sisältää poikkeuksen. Jos
tämän koodin suorituksen aikana ilmenee
poikkeustilanne, skriptimme ei kaadu
virheeseen konsoliin, vaan catch-lohkon
koodi alkaa suorittua.
Tässä lohkossa meidän tulee jollain tavoin
asianmukaisesti reagoida virheeseen. Esimerkiksi,
jos yritimme lähettää tietoja
Internetin kautta ja Internet ei toimi,
catch-lohkossa voimme selviytyä
tilanteesta: voimme esimerkiksi näyttää viestin
käyttäjälle, tai voimme jonkin ajan kuluttua
yrittää lähettää tiedot uudelleen - jos
Internet yhteys toimii jo.
Jos try-lohkon suorituksen aikana mitään
poikkeustilanteita ei tapahdu, hyödyllinen koodi suoritetaan vain, eikä
koodia catch-lohkosta suoriteta.
Esimerkkinä yritetään jäsentää JSON ja sen virheellisyyden tapauksessa näytetään viesti siitä:
try {
let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
alert('JSON-jäsennystä ei voi suorittaa');
}
Annettu koodi, joka kirjoittaa tietyn merkkijonon paikalliseen tallennustilaan:
let str = 'jokin merkkijono';
localStorage.setItem('key', str);
Kääri tämä kodi try-catch-rakenteeseen.
catch-lohkossa näytä viesti
tallennustilan ylivuodosta. Tarkista
koodisi toiminta merkkijonolle, jonka koko on alle 5
tuhatta tavua ja suuremmalle merkkijonolle.
Annettu JSON, jonka sisällä on taulukko.
Jos JSON on oikein, näytä taulukon elementit
listana ul. Jos
JSON on virheellinen, näytä viesti
siitä, että sivulla tapahtui virhe.