In deze tutorial leer je met behulp van voorbeelden over JavaScript-throw-statements.
In de vorige tutorial hebt u geleerd om met uitzonderingen om te gaan met behulp van JavaScript, de try… catch-instructie. De try and catch-instructies verwerken uitzonderingen op een standaardmanier die wordt geleverd door JavaScript. U kunt de throw
instructie echter gebruiken om door de gebruiker gedefinieerde uitzonderingen door te geven.
In JavaScript throw
verwerkt de instructie door de gebruiker gedefinieerde uitzonderingen. Als een bepaald getal bijvoorbeeld wordt gedeeld door 0 , en u Infinity
als een uitzondering moet beschouwen , kunt u de throw
instructie gebruiken om die uitzondering af te handelen.
JavaScript throw-instructie
De syntaxis van throw-instructie is:
throw expression;
Specificeert hier expression
de waarde van de uitzondering.
Bijvoorbeeld,
const number = 5; throw number/0; // generate an exception when divided by 0
Opmerking : de uitdrukking kan een tekenreeks, booleaans getal, getal of objectwaarde zijn.
JavaScript gooien met proberen … vangen
De syntaxis van try… catch… throw
is:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Opmerking : wanneer het throw-statement wordt uitgevoerd, verlaat het het blok en gaat het naar het catch
blok. En de code onder de throw
instructie wordt niet uitgevoerd.
Voorbeeld 1: probeer… vangen… gooien Voorbeeld
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); )
Uitvoer
Er is een fout opgetreden Foutmelding: Fout: het aantal is laag
In het bovenstaande programma wordt een conditie gecontroleerd. Als het aantal kleiner is dan 51 , wordt er een fout gegenereerd. En die fout wordt gegenereerd met behulp van de throw
instructie.
De throw
instructie specificeert de tekenreeks The number is low
als een uitdrukking.
Opmerking : U kunt ook gebruik maken van andere ingebouwde fout constructeurs voor standaard fouten: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, en RangeError
.
Bijvoorbeeld,
throw new ReferenceError('this is reference error');
Herhaal een uitzondering
U kunt ook de throw
instructie binnen het catch
blok gebruiken om een uitzondering opnieuw te plaatsen. Bijvoorbeeld,
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'); ) )
Uitvoer
Een fout opgevangen Foutmelding: Fout: dit is de worp Fout opgelost
In het bovenstaande programma wordt de throw
instructie binnen het try
blok gebruikt om een uitzondering op te vangen. En de throw
instructie wordt opnieuw ingevoerd in het catch
blok dat wordt uitgevoerd als het catch
blok de uitzondering niet aankan.
Hier catch
verwerkt het blok de uitzondering en treedt er geen fout op. Daarom wordt de throw
verklaring niet opnieuw gegooid.
Als de fout niet werd afgehandeld door het catch-blok, zou de throw-instructie opnieuw worden ingevoerd met de foutmelding Uncaught Error: The value is low