Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no ContadorSaquesNaoPermitidos

Como eu consigo ver se meu contador está funcionando? Pois quando lanço duas tentativas de saque maior que o saldo, ele vai parar na primeira tentativa onde vai mostrar o erro, ou seja, vai contar 1 vez só. Coloquei o Console.Writeln para mostrar na tela o resultado do contador no if da classe ContaCorrente -

if (_saldo < valor)
{
    ContadorSaquesNaoPermitidos++;
    Console.WriteLine("contador = " + ContadorSaquesNaoPermitidos);
    throw new SaldoInsuficienteException(_saldo, valor);
}
3 respostas

Certamente será uma das próximas aulas do curso, você aprenderá a tratar exceções, o que permitirá você realizar ações mesmo quando houver uma exceção.

solução!

Olá, Liliane. Tudo bom?

Você poderá testar com o código abaixo:

static void Main(string[] args)
{
    ContaCorrente conta = new ContaCorrente(889, 40654);

    TentarSacar(conta, 500);
    TentarSacar(conta, 500);
    TentarSacar(conta, 500);

    Console.ReadLine();
}

static void TentarSacar(ContaCorrente conta, double valor)
{
    try
    {
        conta.Sacar(valor);
    }
    catch (Exception)
    {
        Console.WriteLine("Nesta tentativa de saque houve uma exceção!");
    }
}

Como o método Sacar lança uma exceção caso um valor ilegal seja utilizado, precisamos que algum método na pilha de chamadas tenha um bloco try/catch para recuperar a exceção e não deixar que ela termine nossa aplicação.

Escrevi o método TentarSacar(ContaCorrente, double) para fazer a chamada de Sacar em um bloco try/catch e tratar a exceção sem deixar que ela chegue aos próximos métodos da pilha de chamadas.

O que você acha?

Abs e bons estudos.

Muito boa a ideia. Funcionou. Obrigada! Queria aproveitar para elogiar sua forma de didática. Consegui aprender coisas que me bati várias vezes para entender e não entendia. Parabéns!!!