1
resposta

[Dúvida] 07 Blocos Try Catch - Não consigo simular o erro

Aqui é o exemplo que o professor deu em aula e ele consegue que o erro entre dentro do catch da Main. Esse é o erro

  private static int Dividir(int numero, int divisor)
        {
            ContaCorrente conta = null;
            Console.WriteLine(conta.Saldo);

            return numero / divisor;
        }

E ele volta pra Main onde tem um catch

static void Main(string[] args)
        {
            try
            {
                Metodo();
            }
            catch(NullReferenceException erro)
            {
                Console.WriteLine(erro.StackTrace);
                Console.WriteLine("Aconteceu um erro!");
            }

            Console.ReadLine();
        }

No vídeo esse exemplo funciona e o código retorna o erro esperado pelo catch do Main, mas ao tentar reproduzir isso, o codigo não consegue compilar essa linha:

   Console.WriteLine(conta.Saldo);

Talvez isso seja devido a alguma atualização do framework, mas gostaria de saber.

https://github.com/alura-cursos/csharpexceptions/blob/aula1/ByteBank/Program.cs

1 resposta

Maria,

Eu acredito que você NÃO pode declarar uma variável da classe "conta" como nulo e depois querer saber do saldo dela.

O erro será: "System.NullReferenceException: 'Object reference not set to an instance of an object.'"

ContaCorrente conta = null;
Console.WriteLine(conta.Saldo);

Para simular o erro, você precisa comentar as duas linhas acima e estas linhas não pertencem ao que se quer ser demonstrado.

[]'s,

Fabio I.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software