Lançando diferentes tipos de exceções em JavaScript
Vamos lançar nossa própria exceção e ver como o objeto de erro se comportará neste caso:
try {
throw new Error('texto da exceção');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'texto da exceção'
}
Como você pode ver, o tipo da nossa exceção é 'Error'.
O mesmo tipo será para quaisquer exceções lançadas
dessa maneira. No entanto, isso nem sempre
será conveniente, pois, se pudermos ter
várias exceções, não seremos capazes de diferenciá-las
umas das outras.
JavaScript fornece uma solução para este problema:
é possível lançar exceções não apenas do tipo
Error, mas também de qualquer tipo de erro
integrado ao JavaScript, por exemplo, TypeError,
SyntaxError, RangeError.
Vamos, por exemplo, lançar uma exceção do tipo
SyntaxError:
try {
throw new SyntaxError('texto da exceção');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'texto da exceção'
}
Lance uma exceção do tipo TypeError.
Lance uma exceção do tipo SyntaxError
e RangeError. Capture essas exceções
usando um único bloco try. No bloco catch
exiba mensagens de erro diferentes para exceções
de tipos diferentes.