1
resposta

Sobre o porque do uso do throw

Olá, eu queria entender um pouco mais sobre a vantagem de "lançar" a exceção para o próximo método da pilha, eu pensei que o tratamento feito apenas no método Main seria mais do que o suficiente.

1 resposta

Olá Paulo, tudo certo?

Não entendi muito bem a sua dúvida.

Acredito que deva ser essa parte do código:

static void Main(string[] args)
{
    try
    {
        Metodo();
    }
    catch (DivideByZeroException excecao)
    {
        Console.WriteLine("Não é possível divisão por 0!");
    }
    catch (Exception excecao)
    {
        Console.WriteLine(excecao.Message);
        Console.WriteLine(excecao.StackTrace);
    }
    Console.ReadLine();
}

Seria por conta dos dois catch? Se sim, o primeirocatch irá pegar exceções somente divisões feitas por zero. Caso a exceção lançada não seja por esse motivo, precisamos ter certeza que conseguiremos pega-lá em algum outro momento, o segundo catchirá cuidar disso.

Você menciona também o tratamento apenas no Maine na ultima aula o professor utiliza o tratamento dentro do método, como no método abaixo:

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

Talvez seja essa sua dúvida. A melhor forma de tratar exceções é coloca-lá no inicio do código, onde o código está sendo implementado. Perceba que, por enquanto, só utilizamos o mainpara fazer testes e garantir que tudo está funcionando, mas se não colocarmos o try/catchno main não conseguimos testa-lá.

Espero ter ajudado. Caso não seja nada disso sua dúvida, por favor, sinta-se confortável para questionar novamente.

Abraços!