Após as alterações realizadas na aula, ao efetuar um teste de transferência com valor negativo, aconteceu um depósito inesperado 0.2 na conta de destino (no meu caso), esse valor é referente a taxa de saque, já que o método transfere, faz uso tanto do método saca quanto deposita.
Graças as aulas de exceção eu consigo corrigir, mas a minha dúvida é onde: posso lançar exceção (SaldoInsuficienteException) na classe Conta e na (ValorInvalidoException) classe ContaCorrente? É correto fazer isso?
Métodos alterados: Classe Conta:
public void saca(double valor) throws SaldoInsuficienteException{
if(valor > this.saldo) {
throw new SaldoInsuficienteException("Saldo insuficiente. Seu saldo atual é " + this.saldo);
}
this.saldo -= valor;
}
public void transfere(double valor, Conta destino) throws SaldoInsuficienteException{
this.saca(valor);
destino.deposita(valor);
}
Classe ContaCorrente
public void saca(double valor) throws SaldoInsuficienteException {
if(valor <= 0 ) {
throw new ValorSolicitadoInvalidoException("O valor deverá ser maior que ZERO.");
}
super.saca(valor + 0.2);
}
Eu tentei fazer na classe Conta algo do tipo: "public void saca(double valor) throws SaldoInsuficienteException | ValorInvalidoException"{}
Mas não deu certo (haha...)