U ovom ćete uputstvu uz primjere naučiti o JavaScript-izjavama za bacanje.
U prethodnom uputstvu naučili ste rukovati iznimkama koristeći JavaScript pokušaj… catch statement. Izjave try and catch obrađuju iznimke na standardni način koji pruža JavaScript. Međutim, možete koristiti throw
izjavu za prosljeđivanje izuzetaka definiranih od korisnika.
U JavaScript-u throw
izjava obrađuje korisnički definirane iznimke. Na primjer, ako je određeni broj podijeljen s 0 i ako je potrebno uzeti u obzir Infinity
kao iznimku, možete koristiti throw
izjavu za obradu te iznimke.
Izjava o bacanju JavaScript-a
Sintaksa naredbe throw je:
throw expression;
Ovdje expression
određuje vrijednost iznimke.
Na primjer,
const number = 5; throw number/0; // generate an exception when divided by 0
Napomena : Izraz može biti niz, logička vrijednost, broj ili vrijednost objekta.
JavaScript baciti s try … catch
Sintaksa try… catch… throw
je:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Napomena : Kada se izvrši izjava bacanja, ona izlazi iz bloka i odlazi u catch
blok. A kod ispod throw
izjave se ne izvršava.
Primjer 1: pokušaj … uhvati … baci Primjer
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); )
Izlaz
Uhvaćena pogreška Poruka pogreške: Pogreška: Broj je nizak
U gornjem programu provjerava se stanje. Ako je broj manji od 51 , pojavit će se pogreška. I ta se pogreška baca pomoću throw
izjave.
Izraz throw
navodi niz The number is low
kao izraz.
Napomena : Možete koristiti i druge ugrađene greške graditelja standardne pogreške: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, i RangeError
.
Na primjer,
throw new ReferenceError('this is reference error');
Vratite iznimku
Također možete koristiti throw
naredbu unutar catch
bloka za ponovno uspostavljanje iznimke. Na primjer,
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'); ) )
Izlaz
Uhvaćena pogreška Poruka o pogrešci: Pogreška: Riješena je pogreška prilikom bacanja
U gornjem programu, throw
izjava se koristi unutar try
bloka za hvatanje iznimke. A throw
izjava se ponovno baca u catch
blok koji se izvršava ako catch
blok ne može obraditi iznimku.
Ovdje catch
blok obrađuje iznimku i ne dolazi do pogreške. Stoga se throw
izjava ne preusmjerava.
Ako blok catch ne obrađuje pogrešku, naredba bacanja ponovno će se baciti s porukom pogreške Uncaught Error: Vrijednost je niska