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

Erro não está sendo processado no método deposita

Olá! Tenho na classe mãe Conta o método deposita que em tese não deveria permitir a inserção de valores negativos:

public void deposita(double valor) {
            if (valor > 0) {
                this.saldo += valor;
            } else {
                throw new RuntimeException("Erro no valor informado");
            }
    }

Porém, meu if não está impedindo que valores negativos sejam passados. Ao testar a classe com a seguinte chamada ao método usando a classe filha ContaPoupanca tenho como resultado o saldo negativo, quando na verdade deveria ocorrer uma Runtime Exception:

ContaPoupanca cp = new ContaPoupanca();
        cp.deposita(-100);
        System.out.println(cp.getSaldo());

Meu print exibe o valor -100. Não consegui entender porque o condicionante if no método deposita parece estar sendo ignorado. Alguém pode dar uma ajuda? Valeu!

2 respostas
solução!

Davi, tudo bem ?

Tá bem estranho isso, consegue me mostrar o código da sua classe ContaPoupanca ? Acredito que pode ter algum detalhe ali que está com gerando esse problema.

Tem razão Matheus, já encontrei o erro! Eu havia reescrito o método deposita dentro da classe ContaPoupanca em algum exercício anterior e depois esqueci de retirar! Problema resolvido! Valeu!

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