У овом упутству ћете научити о ЈаваСцрипт исказима бацања уз помоћ примера.
У претходном упутству научили сте да рукујете изузецима користећи ЈаваСцрипт три… цатцх изјаву. Извештаји три анд цатцх обрађују изузетке на стандардни начин који обезбеђује ЈаваСцрипт. Међутим, можете користити throw
изјаву за прослеђивање кориснички дефинисаних изузетака.
У ЈаваСцрипт-у throw
изјава обрађује кориснички дефинисане изузетке. На пример, ако је одређени број подељен са 0 и ако је потребно узети у обзир Infinity
као изузетак, можете да користите throw
изјаву за руковање тим изузетком.
Изјава о бацању ЈаваСцрипт-а
Синтакса наредбе тхров је:
throw expression;
Овде expression
одређује вредност изузетка.
На пример,
const number = 5; throw number/0; // generate an exception when divided by 0
Напомена : Израз може бити низ, логичка вредност, број или вредност објекта.
ЈаваСцрипт бацање са покушајем … улов
Синтакса try… catch… throw
је:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Напомена : Када се изврши изјава бацања, она излази из блока и прелази у catch
блок. А код испод throw
изјаве се не извршава.
Пример 1: покушај … ухвати … баци Пример
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Оутпут
Ухваћена грешка Порука грешке: Грешка: Број је низак
У горњем програму се проверава стање. Ако је број мањи од 51 , избациће се грешка. И та грешка се баца помоћу throw
изјаве.
throw
Саопштењу наводи низ The number is low
као израз.
Напомена : Можете користити и друге уграђене грешке извођача радова за стандардне грешке: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, и RangeError
.
На пример,
throw new ReferenceError('this is reference error');
Вратите изузетак
Такође можете да користите throw
изјаву унутар catch
блока да бисте вратили изузетак. На пример,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Оутпут
Ухваћена грешка Порука о грешци: Грешка: Ово је грешка приликом бацања решена
У горе наведеном програму, throw
наредба се користи унутар try
блока да ухвати изузетак. А throw
изјава се поново баца у catch
блок који се извршава ако catch
блок не може да поднесе изузетак.
Овде catch
блок обрађује изузетак и не долази до грешке. Стога се throw
изјава не пребацује.
Ако блок цатцх не обрађује грешку, наредба тхров би се поново бацила са поруком грешке Унцаугхт Еррор: Вредност је мала