V tomto návode sa pomocou príkladov dozviete o príkazoch JavaScript throw.
V predchádzajúcom tutoriáli ste sa naučili zvládať výnimky pomocou príkazu JavaScript try… catch. Príkazy try and catch zvládajú výnimky štandardným spôsobom, ktorý poskytuje JavaScript. Príkazom však môžete throw
odovzdať používateľom definované výnimky.
V JavaScripte throw
príkaz spracuje používateľom definované výnimky. Napríklad ak je určitý počet vydelený 0 a ak ho potrebujete považovať Infinity
za výnimku, môžete throw
túto výnimku spracovať pomocou príkazu.
Vyhlásenie hodu JavaScriptu
Syntax príkazu throw je:
throw expression;
Tu expression
určuje hodnotu výnimky.
Napríklad,
const number = 5; throw number/0; // generate an exception when divided by 0
Poznámka : Výraz môže byť reťazec, logická hodnota, číslo alebo hodnota objektu.
Spustenie JavaScriptu pomocou try… catch
Syntax try… catch… throw
je:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Poznámka : Keď je vykonaný príkaz hodu, opustí blok a prejde do catch
bloku. A kód pod throw
výpisom sa nevykoná.
Príklad 1: skúsiť … chytiť … hodiť Príklad
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); )
Výkon
Chytená chyba Chybové hlásenie: Chyba: Počet je nízky
Vo vyššie uvedenom programe je skontrolovaná podmienka. Ak je číslo menšie ako 51 , dôjde k chybe. A táto chyba je vyvolaná pomocou throw
vyhlásenia.
Príkaz throw
určuje reťazec The number is low
ako výraz.
Poznámka : Môžete tiež použiť iné vstavaný omylom konštruktérov pre štandardné chyby: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
a RangeError
.
Napríklad,
throw new ReferenceError('this is reference error');
Prehodiť výnimku
Môžete tiež použiť throw
príkaz vo vnútri catch
bloku na opätovné vyvolanie výnimky. Napríklad,
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'); ) )
Výkon
Chytená chyba Chybové hlásenie: Chyba: Toto je chyba vyhodenia vyriešená
Vo vyššie uvedenom programe sa throw
príkaz používa v rámci try
bloku na zachytenie výnimky. A throw
príkaz sa znovu vyvolá v catch
bloku, ktorý sa vykoná, ak catch
blok nedokáže spracovať výnimku.
Tu catch
blok spracuje výnimku a nedôjde k žiadnej chybe. Preto throw
vyhlásenie nie je preformulované.
Ak by chybu nezachytil blok catch, príkaz hodu by sa znova vyvolal s chybovým hlásením Uncaught Error: Hodnota je nízka