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








