1
resposta

[Projeto] Utilizando outros tipos de exception

Voltei ao projeto do bytebank e utilizei o IllegalArgumentException no construtor para validar se os valores de agencia e numero são 0 ou menores, se sim, então será lançada a exceção. Também utilizei a notação @NotNull para impedir valores nulos.

import org.jetbrains.annotations.NotNull;

public abstract class Conta {

    protected double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;
    private static int total = 0;

    public Conta(@NotNull int agencia, int numero){
        if(agencia < 1 | numero < 0) {
            throw new IllegalArgumentException("Dado inválido");
        }
        Conta.total++;
        System.out.println("O total de contas é " + Conta.total);
        this.agencia = agencia;
        this.numero = numero;
        this.saldo = 0;
        System.out.println("Estou criando uma conta " + this.numero);
    }

    public abstract void deposita(double valor);

    public void saca(double valor) throws SaldoInsuficienteException {
        if(this.saldo < valor) {
            throw new SaldoInsuficienteException("");
        }
        this.saldo -= valor;
    }

    public void transfere(double valor, Conta destino) throws SaldoInsuficienteException {
        this.saca(valor);
        destino.deposita(valor);
    }

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

    public int getNumero(){
        return this.numero;
    }

    public void setNumero(int numero){
        if(numero <= 0) {
            System.out.println("Nao pode valor menor igual a 0");
            return;
        }
        this.numero = numero;
    }

    public int getAgenciaa(){
        return this.agencia;
    }

    public void setAgenciaa(int agenciaa){
        if(agenciaa <= 0) {
            System.out.println("Nao pode valor menor igual a 0");
            return;
        }
        this.agencia = agenciaa;
    }

    public void setTitular(Cliente titular){
        this.titular = titular;
    }

    public Cliente getTitular(){
        return this.titular;
    }

    public static int getTotal(){
        return Conta.total;
    }

}
1 resposta

Fala Maximilian, tudo bem ?

Cara ficou legal a forma que tu usou o conteúdo num projeto distinto e que continuou a funcionar... o mais legal é que dessa forma você está aumentando o seu leque de opções.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software