Vyhlásenie hodu JavaScriptu

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 throwodovzdať používateľom definované výnimky.

V JavaScripte throwpríkaz spracuje používateľom definované výnimky. Napríklad ak je určitý počet vydelený 0 a ak ho potrebujete považovať Infinityza výnimku, môžete throwtúto výnimku spracovať pomocou príkazu.

Vyhlásenie hodu JavaScriptu

Syntax príkazu throw je:

 throw expression;

Tu expressionurč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… throwje:

 try ( // body of try throw exception; ) catch(error) ( // body of catch )

Poznámka : Keď je vykonaný príkaz hodu, opustí blok a prejde do catchbloku. A kód pod throwvý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 throwvyhlásenia.

Príkaz throwurčuje reťazec The number is lowako výraz.

Poznámka : Môžete tiež použiť iné vstavaný omylom konštruktérov pre štandardné chyby: TypeError, SyntaxError, ReferenceError, EvalError, InternalErrora RangeError.

Napríklad,

 throw new ReferenceError('this is reference error');

Prehodiť výnimku

Môžete tiež použiť throwpríkaz vo vnútri catchbloku 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 throwpríkaz používa v rámci trybloku na zachytenie výnimky. A throwpríkaz sa znovu vyvolá v catchbloku, ktorý sa vykoná, ak catchblok nedokáže spracovať výnimku.

Tu catchblok spracuje výnimku a nedôjde k žiadnej chybe. Preto throwvyhlá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

Zaujímavé články...