Hantering av undantag i JavaScript
För att fånga undantag används
konstruktionen try-catch. Den har
följande syntax:
try {
// kod
} catch (error) {
// felhantering
}
I try-blocket ska du placera kod
som kan innehålla ett undantag. Om
ett undantag uppstår när denna kod körs,
kommer vårt skript inte att krascha med ett fel
i konsolen, utan koden i catch-blocket
kommer att börja köras.
I detta block måste vi på något adekvat sätt
svara på felet. Till exempel,
om vi försökte skicka data
över internet och internet inte fungerar, kan
vi i catch-blocket hantera situationen:
vi kan till exempel visa ett meddelande för
användaren, eller försöka skicka datan
igen efter en stund – ifall internet
har börjat fungera.
Om inga exceptionella situationer uppstod när
try-blocket kördes, kommer den användbara koden
bara att köras, medan koden från
catch-blocket inte kommer att köras.
Låt oss som ett exempel försöka tolka JSON och om den är ogiltig, visa ett meddelande om detta:
try {
let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
alert('kan inte utföra JSON-tolkning');
}
Följande kod skriver en sträng till lokal lagring:
let str = 'någon sträng';
localStorage.setItem('key', str);
Sätt in denna kod i en try-catch-
konstruktion.
I catch-blocket ska du visa ett meddelande om
att lagringen är full. Testa hur
din kod fungerar för en sträng med en storlek mindre än 5
MB och för en sträng med en större storlek.
Du har en JSON, inuti vilken en array lagras.
Om denna JSON är korrekt, ska du visa elementen
i arrayen som en ul-lista. Om
JSON är ogiltig, ska du visa ett meddelande
om att ett fel uppstod på sidan.