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

Dúvida com Throw

static void Main(string[] args)
        {
            int i, ii, res = 0;
            do
            {
                Console.WriteLine("Escreva 2 Números");
                i = int.Parse(Console.ReadLine());
                ii = int.Parse(Console.ReadLine());
                Dividir(i, ii, res);
            } while (res == 0);
        }

        public static void Dividir(int i, int ii, int res)
        {
            try
            {
                Conta cc = new Conta();
                cc = null;
                res = i / ii;
                Console.WriteLine(res);
                Console.WriteLine(cc.NumeroAgencia);
            }
            catch (Exception DBZEx)
            {
                Console.WriteLine(DBZEx.Message+" "+DBZEx.StackTrace);
                throw; //Passa adiante essa excessão
            }
        }

O código acima compila, porém no final, na hora do erro, ele para de funcionar. O "throw" seria para ignorar a excessão em questão ?

1 resposta
solução!

Olá, Jonatas. Tudo bom?

Quando temos a expressão throw; ela está lançando a exceção de volta a pilha de chamadas!

Ou seja, seu código em Dividir toma uma ação quando uma exceção acontece, mas lança a exceção para a pilha de chamadas novamente.

Se a ação de tratamento de exceção for apenas Console.WriteLine(DBZEx.Message+" "+DBZEx.StackTrace); você pode remover o throw; e quem chamou o método Dividir nunca vai saber que uma exceção acabou acontecendo.

O que você acha? Resolvi sua dúvida?

Abs e bons estudos.