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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.
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!