4
respostas

Try catch exigindo exception na aula, mas não no meu código.

Então pessoal, Em Java parte 4, na aula 05, terceiro vídeo, bem no minuto 5:36 o professor faz um trycatch que dá uma exception que exige o tratamento, mas aqui no meu código não dá esse aviso não. Ele compila tranquilamente. Será que fiz alguma coisa de errado? É a segunda vez que estou fazendo essa aula e está dando a mesma coisa.

Segue o código que aparentemente está igual do professor na aula. Obrigada!


public class TesteSaca {

    public static void main(String[] args) {
        Conta conta = new ContaCorrente(123, 321);

        conta.deposita(200.0);
        conta.saca(190.0);

        System.out.println(conta.getSaldo());
    }
}
4 respostas

Olá Raquel, tudo bem?

Como está a sua exceção SaldoInsuficienteException?

Ela está de fato herdando de Exception, se você deixou ela como Runtime ai realmente os códigos vão funcionar sem o try | catch

Mas caso esteja de fato correto, como está seu método saca ? Em todos os pontos você pediu para dar throws ao invés de try | catch?

Se ficar mais fácil para ti pode estar postando o conteúdo do arquivo Conta e da exceção :)

Fico no aguardo!

Abraços e Bons Estudos :)

Oi Geovani, tudo bem e você? Vê se é isso que você pediu para eu colocar aqui.

Meu conta.java está assim no método deposita:


    public abstract void deposita(double valor);

    public void saca(double valor) throws SaldoInsuficienteException{

        if(this.saldo < valor) {
            throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", Valor: " + valor);
        } 

        this.saldo -= valor;       
    }

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

E no SaldoInsuficienteException ele pega de Exception que pega de Throwable.


public class SaldoInsuficienteException extends Exception{

    public SaldoInsuficienteException(String msg) {
        super(msg);
    }

}

Nossa Raquel, que estranho ahhaha

Eu testei aqui com os seus trechos de código e funcionou normalmente, pedindo para adicionar o try & catchpor conta da Exceção

O que eu acredito que pode ter acontecido foi algum bug com o Eclipse, na hora que o professor de trocar de RuntimeException para Exception ele não deve ter rebuildado o projeto

Mas de fato utilizando o SaldoInsuficienteException no saca era para obrigar a tratar o erro, quando você executava por exemplo:

conta.deposita(200.0);
conta.saca(290.0);

Dava o erro certinho também?

As vezes de fechar e abrir o projeto o Eclipse desbuga ahahah

Abraços :)

Referênciando a resposta do aluno Gustavo: https://cursos.alura.com.br/forum/topico-respondendo-duvida-do-raquel-133864#888924