У овом упутству ћете научити о исказима три … цатцх … коначно за руковање изузецима у ЈаваСцрипт-у уз помоћ примера.
Тхе try
, catch
и finally
блокови се користе за руковање изузецима (тип грешке). Пре него што научите о њима, морате знати о врстама грешака у програмирању.
Врсте грешака
У програмирању могу постојати две врсте грешака у коду:
Синтаксна грешка : грешка у синтакси. На пример, ако пишете consol.log('your result');
, горњи програм баца синтаксну грешку. Правопис console
је грешка у горенаведеном коду.
Рунтиме Еррор : Ова врста грешке се јавља током извршавања програма. На пример,
позивање неисправне функције или променљиве.
Ове грешке које се јављају током извођења називају се изузецима . Сада, да видимо како можете да се носите са овим изузецима.
ЈаваСцрипт покушај … цатцх Статемент
try… catch
Саопштењу се користи за руковање изузетке. Његова синтакса је:
try ( // body of try ) catch(error) ( // body of catch )
Главни код је унутар try
блока. Током извршавања try
блока, ако дође до било какве грешке, он иде у catch
блок. catch
Блок управља грешке као према изјавама улова.
Ако се не догоди грешка, код унутар try
блока се извршава и catch
блок се прескаче.
Пример 1: Приказати непријављену променљиву
// program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Оутпут
НаН Ухваћена грешка Порука грешке: РеференцеЕррор: а није дефинисана
У горњем програму променљива није дефинисана. Када покушате да одштампате променљиву, програм исписује грешку. Та грешка је ухваћена у catch
блоку.
ЈаваСцрипт покушај … ухвати … коначно Изјава
try… catch… finally
Изјаву такође можете користити за руковање изузецима. finally
Блок извршава и када се код извршава успешно или ако се појави грешка.
Синтакса try… catch… finally
блока је:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
Пример 2: покушај … ухвати … коначно Пример
const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )
Оутпут
НаН Ухваћена грешка Порука грешке: РеференцеЕррор: а није дефинисана Коначно ће се извршити сваки пут
У горњем програму долази до грешке и ту грешку catch
блок ухвати . finally
Блок ће извршити у било којој ситуацији (ако се програм покреће успешно или ако се појави грешка).
Напомена : Треба да користите catch
или finally
изјаву за try
изјавом. У супротном, програм ће избацити грешку Унцаугхт СинтакЕррор: Недостаје цатцх или коначно након покушаја.
ЈаваСцрипт покушај … ухвати у сетТимеоут
try… catch
Неће ухватити изузетак ако се то десило у " временски " код, као у сетТимеоут (). На пример,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Горе наведено try… catch
неће радити јер је мотор већ напустио try… catch
конструкцију и функција се извршава касније.
try… catch
Блок мора да буде у тој функцији да ухвате изузетак унутар временским функцију. На пример,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
throw
Изјаву са наредбом такође можете користити try… catch
да бисте користили кориснички дефинисане изузетке. На пример, одређени број се дели са 0 . Ако желите да сматрате Infinity
грешком у програму, тада можете да избаците кориснички дефинисани изузетак помоћу throw
израза да бисте се бавили тим условом.
О Изјави о бацању ЈаваСцрипт-а сазнаћете у следећем упутству.