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 dividir deve lançar um Error com a mensagem 'Divisão por zero não permitida' quando b === 0.
  • O bloco try deve chamar dividir(10, 0) e o catch deve 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

  1. A função dividir recebe dois números e verifica se o divisor é zero.
  2. Se for zero, lança um Error com a mensagem específica usando throw new Error(...).
  3. Caso contrário, retorna a divisão.
  4. No bloco try, chamamos dividir(10, 0), que lançará o erro.
  5. O fluxo é interrompido e o controle vai para o catch.
  6. No catch, capturamos o erro e imprimimos a mensagem com console.log.
  7. 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.error com console.log: ambos funcionam, mas console.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