Hantering av undantag i JavaScript

För att fånga undantag används konstruktionen try-catch. Den har följande syntax:

javascripttry {
  // 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:

javascripttry {
  let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
  alert('kan inte utföra JSON-tolkning');
}
Задание 1

Följande kod skriver en sträng till lokal lagring:

javascriptlet 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.

Задание 2

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.