Fácil JavaScript
Capturando erro de divisão por zero
Enunciado
Crie uma função dividir(a, b) que lança um Error se b for zero. Use try/catch para capturar e exibir a mensagem de erro.
Requisitos
- A função
dividirdeve lançar umErrorcom a mensagem'Divisão por zero não permitida'quandob === 0. - O bloco
trydeve chamardividir(10, 0)e ocatchdeve imprimir'Erro: Divisão por zero não permitida'. - O programa deve ser executável e não lançar exceção não capturada.
Código inicial
function dividir(a, b) {
// seu código aqui
}
try {
// chame dividir e imprima o resultado
} catch (erro) {
// trate o erro
}
Saída esperada
Erro: Divisão por zero não permitida
Ver dica
Use throw new Error('mensagem') dentro da função e console.log no catch.
Mostrar solução
function dividir(a, b) {
if (b === 0) {
throw new Error('Divisão por zero não permitida');
}
return a / b;
}
try {
const resultado = dividir(10, 0);
console.log(resultado);
} catch (erro) {
console.log('Erro:', erro.message);
}
Passo a passo
- A função
dividirrecebe dois números e verifica se o divisor é zero. - Se for zero, lança um
Errorcom a mensagem específica usandothrow new Error(...). - Caso contrário, retorna a divisão.
- No bloco
try, chamamosdividir(10, 0), que lançará o erro. - O fluxo é interrompido e o controle vai para o
catch. - No
catch, capturamos o erro e imprimimos a mensagem comconsole.log. - Como o erro foi tratado, o programa continua sem quebrar.
Por que funciona
O throw interrompe a execução normal e procura o catch mais próximo. O try delimita o código que pode falhar, e o catch captura o objeto de erro, permitindo tratamento adequado. Isso evita que o programa termine abruptamente.
Erros comuns
- Esquecer de usar
new Error():throw 'Divisão por zero'lança uma string, não um objeto de erro. Isso dificulta a identificação e o tratamento. - Não capturar o erro: se não houver
try/catch, o erro sobe e pode encerrar o programa. - Confundir
console.errorcomconsole.log: ambos funcionam, masconsole.erroré mais adequado para erros.
Outra forma de resolver
Poderia usar if (b === 0) throw new Error(...) diretamente no try, sem função separada. A função é preferível para reutilização.
Saída esperada
Erro: Divisão por zero não permitida