Eri tyyppisten poikkeusten heittäminen JavaScriptissä
Heitetään oma poikkeus ja katsotaan, kuinka virheolio käyttäytyy tässä tapauksessa:
try {
throw new Error('poikkeuksen teksti');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'poikkeuksen teksti'
}
Kuten näette, poikkeuksemme tyyppi on 'Error'.
Saman tyyppisiä ovat kaikki tällä tavalla heitetyt
poikkeukset. Tämä ei kuitenkaan aina
ole kätevää, koska jos meillä voi olla
useita poikkeuksia, emme pysty erottamaan niitä
toisistaan.
JavaScriptissä on ratkaisu tähän ongelmaan:
voimme heittää poikkeuksia paitsi tyyppiä
Error, myös mitä tahansa JavaScriptin
sisäänrakennettua virhetyyppiä, esimerkiksi TypeError,
SyntaxError, RangeError.
Heitetään esimerkiksi SyntaxError-tyyppinen poikkeus:
try {
throw new SyntaxError('poikkeuksen teksti');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'poikkeuksen teksti'
}
Heitä TypeError-tyyppinen poikkeus.
Heitä SyntaxError- ja RangeError-tyyppiset poikkeukset.
Sieppaa nämä poikkeukset
yhdellä try-lohkolla. catch-lohkossa
tulosta eri virheilmoitukset eri tyyppisille poikkeuksille.