Tässä opetusohjelmassa opit JavaScript-heittolausekkeista esimerkkien avulla.
Edellisessä opetusohjelmassa opit käsittelemään poikkeuksia JavaScript try… catch -lausekkeella. Try and catch -lausekkeet käsittelevät poikkeuksia tavanomaisella tavalla, jonka tarjoaa JavaScript. Voit kuitenkin käyttää throw
käskyä välittämään käyttäjän määrittelemiä poikkeuksia.
JavaScriptissä throw
lause käsittelee käyttäjän määrittelemiä poikkeuksia. Esimerkiksi, jos tietty numero on jaettu 0 : lla ja jos sinun on harkittava Infinity
poikkeusta, voit käyttää throw
lausetta tämän poikkeuksen käsittelemiseen.
JavaScript heittää lausunto
Heittolausekkeen syntakse on:
throw expression;
Tässä expression
määritetään poikkeuksen arvo.
Esimerkiksi,
const number = 5; throw number/0; // generate an exception when divided by 0
Huomautus : Lauseke voi olla merkkijono, looginen luku, luku tai objektiarvo.
JavaScript heittää kokeilemalla … kiinni
Syntaksi try… catch… throw
on:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Huomaa : Kun heittolause suoritetaan, se poistuu lohkosta ja menee catch
lohkoon. Ja throw
lauseen alla olevaa koodia ei suoriteta.
Esimerkki 1: kokeile … kiinni … heittää Esimerkki
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); )
Tuotos
Tapahtui virhe Virhesanoma: Virhe: Numero on pieni
Yllä olevassa ohjelmassa kunto tarkistetaan. Jos numero on alle 51 , heitetään virhe. Ja tämä virhe heitetään throw
lauseen avulla.
throw
Selvitys määrittelee merkkijonon The number is low
lausekkeena.
Huomautus : Voit käyttää myös muita sisäänrakennettua virhettä rakentajien vakio virheitä: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, ja RangeError
.
Esimerkiksi,
throw new ReferenceError('this is reference error');
Toista poikkeus
Voit myös käyttää throw
lausuman sisällä catch
lohko rethrow poikkeus. Esimerkiksi,
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'); ) )
Tuotos
Tapahtui virhe Virhesanoma: Virhe: Tämä on heittovirhe ratkaistu
Yllä olevassa ohjelmassa throw
lausetta käytetään try
lohkon sisällä poikkeuksen saamiseksi. Ja throw
käsky palautetaan catch
lohkoon, joka suoritetaan, jos catch
lohko ei pysty käsittelemään poikkeusta.
Tässä catch
lohko käsittelee poikkeuksen eikä virheitä tapahdu. Siksi throw
lausuntoa ei palauteta.
Jos saalislohko ei käsitellyt virhettä, heittolause palautetaan virheilmoituksella Uncaught Error: Arvo on pieni