Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] DivideByZeroException

pensei que havia feito o tratamento de exceção corretamente, porém, quando faço o teste de dividir 0 parece que o resultado é sempre 8..

      Console.Write("digite o dividendo: ");
      double a = double.Parse(Console.ReadLine()!);

      Console.Write("digite o divisor: ");
      double b = double.Parse(Console.ReadLine()!);

      try
      {
          Console.WriteLine($"resultado: {a / b}");
      }
      catch (DivideByZeroException)
      {
          Console.WriteLine("não se pode dividir por zero");
      }

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Giovanna! Tudo bem?

O resultado inesperado de "8" sugere que pode haver algum problema no ambiente de execução ou em alguma configuração específica. Então, vamos revisar o código e garantir que ele esteja corretamente tratando a exceção de divisão por zero:

Console.Write("digite o dividendo: ");
double a = double.Parse(Console.ReadLine()!);

Console.Write("digite o divisor: ");
double b = double.Parse(Console.ReadLine()!);

try
{
    if (b == 0)
    {
        throw new DivideByZeroException();
    }
    Console.WriteLine($"resultado: {a / b}");
}
catch (DivideByZeroException)
{
    Console.WriteLine("não se pode dividir por zero");
}

Aqui está o que foi alterado:

  1. Adicionei uma verificação explícita if (b == 0) antes de realizar a divisão. Se b for zero, lançamos manualmente a exceção DivideByZeroException.
  2. Isso garante que a exceção será capturada e tratada corretamente no bloco catch.

Essa abordagem deve resolver o problema que você está enfrentando. Execute o código novamente e veja se a mensagem "não se pode dividir por zero" é exibida corretamente quando o divisor é zero.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.