1
resposta

Qual a vantagem de passar a exceção adiante ?

O que há de vantagem em usar o comando throw no bloco catch do método "Dividir" e lançar a exceção adiante, e não usar o tratamento adequado dentro do bloco catch do método analisado ?

private static int Dividir(int numero, int divisor)
        {
        try
        {
                return numero / divisor;
        }
        catch (DivideByZeroException)
        {
                Console.WriteLine("Exceção com numero=" + numero + " e divisor=" + divisor);
                throw;
        }
        }
1 resposta

Olá Chrystian, tudo bem?

Este ponto é mais uma questão didática, onde é mostrado como testar um método sem utilizar uma biblioteca externa de testes. Neste caso é um método simples que faz uma divisão e tem a possibilidade do divisor ser zero.

Isso também é usado quando você tem a intenção de passar a exceção para o método que chamou esse método (meio confuso), mas o resumo de tudo é que isso serve testar e ajudar a identificar onde ocorre as exceções, sem depender de utilizar testes de unidade.

As vezes pode ser um bug simples como alguma função geral está passando o valor zero para a essa função de Dividir() e colocar esse throw poderia ser a chance de entender esse problema.

Espero ter ajudado!