Olá, Jefferson, como vai?
Em JavaScript, os tipos de erro (como RangeError
, TypeError
, SyntaxError
, etc.) são classes de erro pré-definidas que herdam de Error
. A diferença principal está na semântica e na organização do código, não no comportamento padrão do interpretador.
Quando você usa throw new RangeError("mensagem")
ou throw new Error("mensagem")
, o mecanismo de lançamento e captura do erro funciona da mesma forma. A distinção entre os tipos é útil para:
- Rastreabilidade: Identificar a categoria do erro (ex: RangeError para valores fora do intervalo esperado).
- Controle de fluxo: Capturar erros específicos com catch se necessário.
Por exemplo:
// Exemplo com RangeError
function calcularRaizQuadrada(num) {
if (num < 0) throw new RangeError("Número não pode ser negativo");
return Math.sqrt(num);
}
// Exemplo com Error genérico
function dividir(a, b) {
if (b === 0) throw new Error("Divisão por zero");
return a / b;
}
try {
calcularRaizQuadrada(-1);
} catch (e) {
if (e instanceof RangeError) {
console.log("Erro de intervalo:", e.message);
} else {
console.log("Erro genérico:", e.message);
}
}
Se você substituir RangeError
por Error
no primeiro exemplo, o código continuará funcionando, mas perderá a semântica específica do tipo de erro.
Espero ter ajudado!
Siga firme nos seus estudos e conte com o fórum sempre que precisar.
Abraços :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado