În acest tutorial, veți afla despre declarațiile JavaScript throw cu ajutorul exemplelor.
În tutorialul anterior, ați învățat să gestionați excepțiile folosind declarația JavaScript try … catch. Instrucțiunile try și catch gestionează excepțiile într-un mod standard, care este furnizat de JavaScript. Cu toate acestea, puteți utiliza throw
instrucțiunea pentru a trece excepții definite de utilizator.
În JavaScript, throw
declarația gestionează excepțiile definite de utilizator. De exemplu, dacă un anumit număr este împărțit la 0 și dacă trebuie să îl considerați Infinity
ca o excepție, puteți utiliza throw
instrucțiunea pentru a gestiona acea excepție.
Declarație de aruncare JavaScript
Sintaxa declarației throw este:
throw expression;
Aici, expression
specifică valoarea excepției.
De exemplu,
const number = 5; throw number/0; // generate an exception when divided by 0
Notă : Expresia poate fi șir, boolean, număr sau valoare obiect.
JavaScript aruncă cu try … catch
Sintaxa lui try… catch… throw
este:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Notă : Când instrucțiunea throw este executată, ea iese din bloc și merge la catch
bloc. Și codul de sub throw
instrucțiune nu este executat.
Exemplul 1: încearcă … prinde … aruncă Exemplu
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); )
Ieșire
A apărut o eroare Mesaj de eroare: Eroare: numărul este scăzut
În programul de mai sus, este verificată o stare. Dacă numărul este mai mic de 51 , se aruncă o eroare. Și acea eroare este aruncată folosind throw
instrucțiunea.
Instrucțiunea throw
specifică șirul The number is low
ca expresie.
Notă : Puteți utiliza și alți constructori built-in eroare pentru erori standard: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, și RangeError
.
De exemplu,
throw new ReferenceError('this is reference error');
Reveniți la o excepție
De asemenea, puteți utiliza throw
instrucțiunea din interiorul catch
blocului pentru a retrage o excepție. De exemplu,
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'); ) )
Ieșire
A apărut o eroare Mesaj de eroare: Eroare: Aceasta este eroarea rezolvată
În programul de mai sus, throw
declarația este utilizată în cadrul try
blocului pentru a prinde o excepție. Și throw
declarația este retrasă în catch
bloc, care se execută dacă catch
blocul nu poate gestiona excepția.
Aici, catch
blocul gestionează excepția și nu apare nicio eroare. Prin urmare, throw
declarația nu este retrasă.
Dacă eroarea nu a fost gestionată de blocul de captură, instrucțiunea throw ar fi retrasă cu mesajul de eroare Uncaught Error: Valoarea este scăzută