1
resposta

Consistir Valores no construtor para criar ou não o objeto

No código abaixo, criei o construtor da classe ContaCorrente, o Guilherme começou o vídeo falando que agência e número não podem ser zerados ou menores que zero. Fizemos os tratamentos nos Setters de cada atributo para impedir isso, porém antes de ter o construtor ele já criava o objeto com o valor padrão destes atributos iguais a 0 ZERO. E ai ele entrou no assunto construtor, porém se eu passar zero no construtor vai criar da mesma forma, ou até mesmo um número negativo. Eu criei a consistência dentro do meu construtor, e ok ele não seta os valores negativos e nem zerados que foram passados, mas ele cria o objeto de qualquer maneira e acaba pegando novamente os valores defaults, ou seja, ZERADOS. Como eu posso impedir que a instanciação seja concluida, ou seja, o objeto criado em memória caso minha consistência não seja satisfeita?

public ContaCorrente (int agencia, int conta)
    {
        if (agencia > 0)
        {
            if (conta > 0)
            {
                _agencia = agencia;
                _conta = conta;
            }
        }
    }
1 resposta

Você pode lançar uma exceção indicando que os valores dos argumentos estão incorretos, quando os valores passados forem menores ou iguais a zero.

Recomendo: https://docs.microsoft.com/pt-br/dotnet/api/system.argumentexception?view=netframework-4.8

Vc pode fazer algo do tipo:

throw new ArgumentException("Agencia não pode ser menor ou igual a zero")

Se vc ainda não chegou na parte de exceções, veja a linha de raciocínio do instrutor para a parte atual do curso, certamente vc irá aprender melhores maneiras de verificar a consistência ao avançar no curso.