V tej vadnici boste s pomočjo primerov spoznali izjave o metanju JavaScript.
V prejšnji vadnici ste se naučili obvladovati izjeme z uporabo izjave JavaScript try… catch. Izjave try and catch urejajo izjeme na standardni način, ki ga zagotavlja JavaScript. Vendar lahko z throw
stavkom posredujete uporabniško določene izjeme.
V JavaScript throw
izjava obravnava uporabniško določene izjeme. Na primer, če je določeno število deljeno z 0 in če morate to upoštevati Infinity
kot izjemo, lahko s to throw
izjavo ravnate s to izjemo.
Izjava o metu JavaScript
Sintaksa stavka throw je:
throw expression;
Tu expression
določa vrednost izjeme.
Na primer
const number = 5; throw number/0; // generate an exception when divided by 0
Opomba : Izraz je lahko niz, logična, številka ali vrednost predmeta.
JavaScript vrgel s poskusom … ulov
Sintaksa try… catch… throw
je:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Opomba : Ko se izvrši stavek throw, izstopi iz bloka in gre v catch
blok. In koda pod throw
stavkom se ne izvrši.
Primer 1: poskusite… ulov… metanje Primer
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); )
Izhod
Ujeta napaka Sporočilo o napaki: Napaka: Število je nizko
V zgornjem programu se preveri stanje. Če je število manjše od 51 , se prikaže napaka. In ta napaka se vrže z uporabo throw
stavka.
throw
Izjava določa niz The number is low
kot izraz.
Opomba : Uporabite lahko tudi druge vgrajene napake gradbenikom za standardne napake: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, in RangeError
.
Na primer
throw new ReferenceError('this is reference error');
Vrnite izjemo
throw
Izjavo znotraj catch
bloka lahko uporabite tudi za obnovitev izjeme. Na primer
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'); ) )
Izhod
Ujeta napaka Sporočilo o napaki: Napaka: Odpravljena je napaka meta
V zgornjem programu se throw
stavek uporablja v try
bloku, da ujame izjemo. In throw
stavek se znova vrne v catch
blok, ki se izvrši, če catch
blok ne more obvladati izjeme.
Tu catch
blok obravnava izjemo in ne pride do napake. Zato throw
izjava ni ponovno zavržena.
Če blok catch ne bi obravnaval napake, bi bil stavek throw znova vrnjen s sporočilom o napaki Uncaught Error: Vrednost je nizka