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.
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á.