Wyrzucanie różnych typów wyjątków w JavaScript
Wyrzućmy własny wyjątek i zobaczmy, jak zachowa się obiekt z błędem w tym przypadku:
try {
throw new Error('tekst wyjątku');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'tekst wyjątku'
}
Jak widzisz, typ naszego wyjątku to 'Error'.
Taki sam typ będą miały wszystkie wyjątki wyrzucone
w podobny sposób. Nie zawsze będzie to jednak
wygodne, ponieważ jeśli możemy mieć
kilka wyjątków, nie będziemy mogli ich odróżnić
od siebie.
W JavaScript przewidziano rozwiązanie tego problemu:
można wyrzucać wyjątki nie tylko typu
Error, ale także dowolnego wbudowanego w JavaScript
typu błędu, na przykład TypeError,
SyntaxError, RangeError.
Dla przykładu wyrzućmy wyjątek typu
SyntaxError:
try {
throw new SyntaxError('tekst wyjątku');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'tekst wyjątku'
}
Wyrzuć wyjątek z typem TypeError.
Wyrzuć wyjątek z typem SyntaxError
i RangeError. Przechwyć te wyjątki
za pomocą jednego bloku try. W bloku catch
wyświetl różne komunikaty o błędzie dla wyjątków
różnych typów.