Selles õpetuses saate näidete abil õppida JavaScripti viskeavaldusi.
Eelmises õpetuses õppisite erandeid käsitsema JavaScripti proovimise… püüdmislausega. Proovi ja püüdke lauseid käsitletakse erandeid standardsel viisil, mille pakub JavaScripti. Lauset saate siiski kasutada throw
kasutaja määratletud erandite edastamiseks.
JavaScripti puhul käsitleb throw
avaldus kasutaja määratletud erandeid. Näiteks kui teatud arv jagatakse 0-ga ja kui peate arvestama Infinity
erandina, võite throw
selle erandi käsitlemiseks kasutada lauset.
JavaScripti viskeavaldus
Viskeavalduse süntaks on:
throw expression;
Siin saab expression
määrata erandi väärtuse.
Näiteks,
const number = 5; throw number/0; // generate an exception when divided by 0
Märkus . Avaldis võib olla string, tõeväärtus, arv või objekti väärtus.
JavaScripti viskamine prooviga … püüdmine
Süntaks try… catch… throw
on:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Märkus . Kui viskeväljend on täidetud, väljub see plokist ja läheb catch
plokki. Ja throw
väljavõtte all olevat koodi ei täideta.
Näide 1: proovige … püüdke … visake näide
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); )
Väljund
Püütud viga Veateade: Viga: arvu on vähe
Ülaltoodud programmis kontrollitakse tingimust. Kui arv on väiksem kui 51 , visatakse viga. Ja see viga visatakse throw
avalduse abil.
throw
Avaldus täpsustab string The number is low
väljendusena.
Märkus : Teil on võimalik kasutada ka muid sisseehitatud viga ehitajatelt standard vead: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, ja RangeError
.
Näiteks,
throw new ReferenceError('this is reference error');
Viske erand
Võite kasutada ka throw
avaldus sees catch
kvartali rethrow erand. Näiteks,
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'); ) )
Väljund
Püütud viga Veateade: Viga: see on viskeviga lahendatud
Ülalolevas programmis kasutatakse throw
lauset try
erandi saamiseks plokis. Ja throw
lause avaldatakse selles catch
plokis, mis käivitatakse, kui catch
plokk ei saa erandiga hakkama.
Siin catch
tegeleb plokk erandiga ja viga ei toimu. Seega throw
ei lükata avaldust tagasi.
Kui viga ei õnnestunud püüdmisplokis, visati viskelause uuesti tõrketeatega Uncaught Error: väärtus on madal