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

Erro na execução

pessoal, esta compilando mas na execução do TestaDeposita ele me da o seguinte erro:

Exception in thread "main" ValorInvalidoException: Valor invalido
    at Conta.deposita(Conta.java:14)
    at Conta.<init>(Conta.java:5)
    at ContaCorrente.<init>(ContaCorrente.java:4)
    at TestaDeposita.main(TestaDeposita.java:4)

as minhas classes são:

public class TestaDeposita {
    public static void main(String[] args) throws ValorInvalidoException {

        new ContaCorrente(-100);
    }
}
public class ValorInvalidoException extends Exception { //Erro: The serializable class ValorInvalidoException does not declare a static final serialVersionUID field of type long
    public ValorInvalidoException() {
        super("Valor invalido");
    }
}
abstract class Conta {
//...
    public void deposita(double valor) throws ValorInvalidoException {
        if (valor < 0) {
            throw new ValorInvalidoException();
        } else {
            this.saldo += valor;
        }
    }
//...
2 respostas
solução!

Fala aí Gal, blz?

Seu código está correto, seu método deposita tem uma validação que se o valor for menor que 0 deve ser lançada uma exceção em tempo de execução. Essa exceção é uma ValorInvalidoException que como mensagem da causa do erro está definido Valor invalido.

Caso não queira que essa exceção seja propagara para fora da sua classe TestaDeposita você pode fazer o seguinte. Dentro do método main envolver a execução entre um try/catch e remover o throws da assinatura do método main.

public class TestaDeposita {
    public static void main(String[] args)  {
    try{    
        new ContaCorrente(-100);
    }catch( ValorInvalidoException e ) {
        System.out.println("Valor Inválido");
    }
    }
}

é isso mesmo Fernando, muito obridago