In questo tutorial imparerai a conoscere le istruzioni throw di JavaScript con l'aiuto di esempi.
Nel tutorial precedente, hai imparato a gestire le eccezioni utilizzando l'istruzione try… catch di JavaScript. Le istruzioni try e catch gestiscono le eccezioni in un modo standard fornito da JavaScript. Tuttavia, è possibile utilizzare l' throw
istruzione per passare eccezioni definite dall'utente.
In JavaScript, l' throw
istruzione gestisce le eccezioni definite dall'utente. Ad esempio, se un certo numero viene diviso per 0 e se è necessario considerarlo Infinity
come un'eccezione, è possibile utilizzare l' throw
istruzione per gestire tale eccezione.
Istruzione throw JavaScript
La sintassi dell'istruzione throw è:
throw expression;
Qui, expression
specifica il valore dell'eccezione.
Per esempio,
const number = 5; throw number/0; // generate an exception when divided by 0
Nota : l'espressione può essere una stringa, un valore booleano, un numero o un valore oggetto.
Lancia JavaScript con try … catch
La sintassi di try… catch… throw
è:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Nota : quando viene eseguita l'istruzione throw, esce dal blocco e passa al catch
blocco. E il codice sotto l' throw
istruzione non viene eseguito.
Esempio 1: prova … prendi … lancia Esempio
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); )
Produzione
È stato rilevato un errore Messaggio di errore: Errore: il numero è basso
Nel programma precedente, viene verificata una condizione. Se il numero è inferiore a 51 , viene generato un errore. E quell'errore viene generato utilizzando l' throw
istruzione.
L' throw
istruzione specifica la stringa The number is low
come un'espressione.
Nota : È inoltre possibile utilizzare altri costruttori built-in di errore per errori standard: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, e RangeError
.
Per esempio,
throw new ReferenceError('this is reference error');
Ripeti un'eccezione
È inoltre possibile utilizzare l' throw
istruzione all'interno del catch
blocco per rilanciare un'eccezione. Per esempio,
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'); ) )
Produzione
Errore rilevato Messaggio di errore: Errore: questo è l'errore di lancio risolto
Nel programma precedente, l' throw
istruzione viene utilizzata all'interno del try
blocco per catturare un'eccezione. E l' throw
istruzione viene rilanciata nel catch
blocco che viene eseguito se il catch
blocco non può gestire l'eccezione.
Qui, il catch
blocco gestisce l'eccezione e non si verifica alcun errore. Quindi, l' throw
affermazione non viene rigettata.
Se l'errore non è stato gestito dal blocco catch, l'istruzione throw verrebbe lanciata di nuovo con il messaggio di errore Uncaught Error: Il valore è basso