Rodzaje sytuacji wyjątkowych w JavaScript
W JavaScript jest bardzo mało sytuacji, w których powstają wyjątki. Po pierwsze, po prostu dlatego, że jest bardzo mało miejsc na ich powstanie.
Po drugie, ponieważ sam język jest "wybaczający": patrzy na wiele rzeczy przez palce, na przykład, na dzielenie przez zero lub na niepoprawny kod HTML. Nawet jeśli wskażesz nieprawidłową ścieżkę do obrazka, który zamierzasz załadować, JavaScript ci to wybaczy i nie uzna za wyjątek.
Jednakże sytuacje wyjątkowe istnieją. Przeanalizujemy dwie najprostsze i na ich przykładzie nauczymy się pracy z wyjątkami w JavaScript.
Pierwszy wyjątek powstaje, gdy chcemy przeanalizować nieprawidłowy JSON:
let data = JSON.parse('{1,2,3,4,5}'); // ten json jest nieprawidłowy
A drugi wyjątek powstaje, gdy lokalna
pamięć przydzielona dla naszej strony przepełni się
(więcej niż 5 megabajtów). Sztucznie
wywołajmy taki wyjątek:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // tworzymy ciąg znaków o wielkości ponad 5 MB
str += '+';
}
localStorage.setItem('key', str); // próbujemy zapisać do pamięci
Jak JavaScript reaguje na takie wyjątkowe sytuacje? Po prostu wyrzuca błąd do konsoli i przerywa dalsze wykonanie skryptu.
Naszym zadaniem, jako programistów, jest
przechwycić taką sytuację i sobie z nią jakoś
poradzić, nie pozwalając programie całkowicie
przerwać swojego wykonania. Do tego
istnieje specjalna konstrukcja try-catch,
którą przeanalizujemy w kolejnych lekcjach.
Utwórz ciąg znaków odpowiednio dużego rozmiaru i spróbuj zapisać go do lokalnej pamięci. Upewnij się, że w konsoli pojawi się błąd.
Spróbuj przeanalizować nieprawidłowy JSON. Upewnij się, że w konsoli pojawi się błąd.