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

Tratamento de Exception no construtor

Neste caso quando criamos uma exception no construtor, é sempre necessário tratá-la? Exemplo no código abaixo, crio uma conta com agência inválida mas abaixo crio outras contas válidas inclusive executo operações com elas, caso eu não trate a exception ela mudará o fluxo do resto do programa.


public class TesteContas {

    public static void main(String[] args) throws SaldoInsuficienteException {

        try {
            Conta conta = new ContaCorrente(-111, 298);
        } catch(IllegalArgumentException ex) {
            ex.getMessage();
            ex.printStackTrace();
        }

        ContaCorrente cc = new ContaCorrente(298, 20125);
        cc.deposita(100.0);

        ContaPoupanca cp = new ContaPoupanca(2320, 237500);
        cp.deposita(100.0);

        cc.transfere(10.0, cp);
        System.out.println("CC: " + cc.getSaldo());
        System.out.println("CP: " + cp.getSaldo());

        cc.transfere(90.0, cp);

    }

}
1 resposta
solução!

Fala @Thales,

O objetivo de uma excessão é indicar que algo não está indo como esperamos

Seu comentário deste comportamento mudar o fluxo da aplicação indica seu entendimento sobre o conceito.

Agora o ponto é:

  • vamos tratar uma excessão?
  • vamos deixar ela passar?
  • vamos encapsular e jogar numa mais expressiva e mais na frente saber como agir?

São ações muito particulares e dependem exclusivamente do funcionamento do seu programa. Neste momento, pra você, fez sentido tratar.

Uma exceção tem duas saídas:

  • Pega-se a excesão, trata-se devidamente, segue-se com o fluxo e a aplicação tem o seu início meio e fim com sucesso.

  • Não tratamos uma excesão, ela vai estourando, estourando, estourando até que a aplicação para inesperadamente por um erro.

Belê?

Bons estudos.