У овом упутству ћете научити о исказима три … цатцх … коначно за руковање изузецима у ЈаваСцрипт-у уз помоћ примера.
Тхе 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израза да бисте се бавили тим условом.
О Изјави о бацању ЈаваСцрипт-а сазнаћете у следећем упутству.








