Throw personalizado
Em programas reais, funções que recebem entradas imprevisíveis precisam comunicar falhas de forma clara. Ao invés de retornar valores inválidos como null ou undefined, que podem passar despercebidos, você pode interromper o fluxo com throw para que o erro seja tratado explicitamente. Dominar isso evita bugs silenciosos e facilita a manutenção do código.
O PROBLEMA
Crie função dividir(a, b) que lança erro personalizado se b for zero.
EXEMPLO
function dividir(a, b) {
if (b === 0) throw new Error("Divisão por zero");
return a / b;
}
try { dividir(10, 0) } catch(e) { console.error(e.message) }SOBRE O CONCEITO
O throw permite lançar uma exceção, interrompendo a execução normal e passando o controle para o bloco catch mais próximo. No exemplo, usamos throw new Error("Divisão por zero") porque Error é um objeto padrão que carrega a mensagem e o stack trace. Um erro comum é usar throw "Divisão por zero" (uma string), o que funciona mas perde metadados importantes e não segue a convenção do JavaScript. Outro erro é não usar try/catch em chamadas que podem lançar exceção — se o throw não for capturado, o programa inteiro para. Por isso, ao chamar dividir(10, 0) dentro de um try, o erro é capturado e podemos acessar e.message para exibir uma mensagem amigável.
RESOLUÇÃO