Įvairių tipų išimčių metimas JavaScript
Išmeskime savo išimtį ir pažiūrėkime, kaip elgsis klaidos objektas šiuo atveju:
try {
throw new Error('išimties tekstas');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'išimties tekstas'
}
Kaip matote, mūsų išimties tipas yra 'Error'.
Toks pat tipas bus ir visoms išimtims, mestoms
panašiu būdu. Tačiau tai ne visada
bus patogu, nes jei galime turėti
kelias išimtis, mes negalėsime jų atskirti
vieną nuo kitos.
JavaScript numato šios problemos sprendimą:
galima mesti ne tik Error tipo
išimtis, bet ir bet kokios į JavaScript įtrauktos
klaidos tipo, pavyzdžiui, TypeError,
SyntaxError, RangeError.
Pavyzdžiui, išmeskime SyntaxError tipo
išimtį:
try {
throw new SyntaxError('išimties tekstas');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'išimties tekstas'
}
Išmeskite TypeError tipo išimtį.
Išmeskite SyntaxError
ir RangeError tipo išimtis. Pagaukite šias išimtis
naudodami vieną try bloką. catch bloke
atspausdinkite skirtingus klaidos pranešimus skirtingų tipų
išimtims.