Врсте изузетних ситуација у JavaScript-у

У JavaScript-у веома је мало ситуација у којима настају изузеци. Прво, једноставно зато што постоји веома мало места за њихово настајање.

Друго, зато што је сам језик "свепробаван": на много тога затвара очи, на пример, на дељење са нулом или на неисправан HTML код. Чак и ако наведете погрешну путању до слике коју желите да учитате, JavaScript ће вам то опростити и неће сматрати изузетком.

Међутим, изузетне ситуације постоје. Ми ћемо размотрити две најједноставније и на њиховом примеру проучити рад са изузецима у JavaScript-у.

Први изузетак настаје када желимо да распарсимо неисправан JSON:

javascriptlet data = JSON.parse('{1,2,3,4,5}'); // овај json није исправан

А други изузетак настаје када локално складиште, издвојено за наш сајт, буде препуњено (више од 5 мегабајта). Хајде да вештачки изазовемо такав изузетак:

javascriptlet str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // формирамо стринг већи од 5 мб
  str += '+';
}

localStorage.setItem('key', str); // покушавамо да уписемо у складиште

Како JavaScript реагује на такве изузетне ситуације? Он једноставно избацује грешку у конзолу и прекида даље извршавање скрипте.

Наш задатак, као програмера, је да ухватимо такву ситуацију и да се некако изборимо са њом, не дозвољавајући програму да потпуно прекине своје извршавање. За то постоје посебне конструкције try-catch, које ћемо размотрити у наредним лекцијама.

Задание 1

Направите стринг довољно велике величине и покушајте да га уписете у локално складиште. Уверите се да ће у конзоли бити грешка.

Задание 2

Покушајте да распарсите неисправан JSON. Уверите се да ће у конзоли бити грешка.