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á, 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 catch
irá cuidar disso.
Você menciona também o tratamento apenas no Main
e 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 main
para fazer testes e garantir que tudo está funcionando, mas se não colocarmos o try/catch
no 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!