Typer av oppståtte situasjoner i JavaScript
I JavaScript er det svært få situasjoner der unntak oppstår. For det første, rett og slett fordi det er svært få steder de kan oppstå.
For det andre, fordi språket selv er "tilgivende": det ser gjennom fingrene med mange ting, for eksempel divisjon med null eller ugyldig HTML-kode. Selv om du oppgir en feil sti til bildet du prøver å laste inn, vil JavaScript tilgi deg også for det og ikke betrakte det som et unntak.
Imidlertid finnes det unntakssituasjoner. Vi skal se på de to enkleste og bruke dem som eksempel for å lære hvordan unntak håndteres i JavaScript.
Det første unntaket oppstår når vi prøver å parse ugyldig JSON:
let data = JSON.parse('{1,2,3,4,5}'); // denne json-en er ugyldig
Og det andre unntaket oppstår når den lokale
lagringsplassen som er tildelt nettsiden vår blir overfylt
(mer enn 5 megabyte). La oss kunstig
fremkalle et slikt unntak:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // danner en streng på over 5 mb
str += '+';
}
localStorage.setItem('key', str); // prøver å skrive til lagring
Hvordan reagerer JavaScript på slike unntakssituasjoner? Det skriver rett og slett ut en feil til konsollen og stopper videre kjøring av skriptet.
Vår oppgave som programmerere er
å fange opp en slik situasjon og håndtere den på en eller annen måte,
uten å la programmet stoppe helt. For dette
finnes det en spesiell konstruksjon try-catch,
som vi skal se på i de neste leksjonene.
Opprett en streng som er stor nok og prøv å skrive den til den lokale lagringsplassen. Forsikre deg om at det kommer en feil i konsollen.
Prøv å parse ugyldig JSON. Forsikre deg om at det kommer en feil i konsollen.