Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida - Try Catch e Exception

Boa noite.

Estou executando o código feito na aula 05-Aplicando exceções, vídeo 04 (Sacando com Unchecked Exception), porém estou tendo uma certa confusão para assimilar o motivo do meu programa não ter uma parada abrupta.

Código dos métodos saca, deposita e extrato:

public abstract class Conta{

    //codigos omitidos..

    public void saca(double valor){
            try{

                if(this.saldo < valor)
                    throw new SaldoInsuficienteException("Saldo insuficiente na conta. Saldo: " + this.saldo + ", Valor: " + valor);    

            }catch(Exception e){
                e.printStackTrace();
            }

            this.saldo -= valor;
        }

    public void deposita(double valor){
        this.saldo += valor;
    }

    public double extrato(){
            return this.saldo;
    }
}

Código do teste realizado:

public class TesteConta {

    public static void main(String[] args) {

        Conta c = new ContaCorrente(123, 111);
        c.deposita(200.0);
        c.saca(310.0);

        System.out.println(c.extrato());
    }

}

A saída esperada é a mensagem de exceção, apenas, porém no meu console ainda puxa o saldo da minha referência, conforme imagem abaixo.

Saída do console

Minha confusão é: meu código não se encerrou abruptamente quando ocorreu a exceção devido ao tratamento feito pelo try catch, correto?

Gostaria só de confirmar para saber se meu entendimento está no caminho certo. Agradeço desde já.

1 resposta
solução!

Ola Isabelle.

Seu entendimento esta correto! Ao lançar SaldoInsuficienteException, a exceção é capturada pelo catch logo abaixo dela, e assim, continua o fluxo de execução do codigo (que retira o valor do saldo).

Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.