1
resposta

Projeti bytebank herdado

Meu código apresenta essa exceção:

Exception in thread "main" SaldoInsuficienteException: Saldo: 200.0, valor: 190.2
    at Conta.saca(Conta.java:26)
    at ContaCorrente.saca(ContaCorrente.java:11)
    at TesteSaca.main(TesteSaca.java:7)

Conta.java:26

public void saca(double valor) {

            if(this.saldo >= valor) {
               throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", valor: " + valor);
            }
            this.saldo -= valor;
        }

ContaCorrente.java:11

public void saca(double valor) {
        double valorASacar = valor + 0.2;
        super.saca(valorASacar);
    }

TesteSaca.java:7

public class TesteSaca {

    public static void main(String[] args) {
        Conta conta = new ContaCorrente(123, 321);
        conta.deposita(200);
        conta.saca(190);

        //System.out.println(conta.getSaldo());
    }
}

Como faço para resolver o problema? Devo tirar o throw exception do meu código?

1 resposta

Nesse caso, você precisa corrigir a condição, pois você verifica se o saldo é MAIOR OU IGUAL ao invés de MENOR para lançar o erro:

if(this.saldo >= valor) {
               throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", valor: " + valor);
            }

Se o saldo é MAIOR ou IGUAL ao valor ele é suficiente. Nesse caso, você pode fazer da seguinte maneira:

if(this.saldo < valor) {
               throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", valor: " + valor);
            }