Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Exercício 9 / Exceções e Controle de Erros

Galera, não estou conseguindo entender este exercício e não consigo passar disso!

Não entendo quando é pedido para passar via construtor uma msg.

Ao lançar a IllegalArgumentException, passe via construtor uma mensagem a ser exibida.
Lembre que a String recebida como parâmetro é acessível depois via o método getMessage()
herdado por todas as Exceptions.

Nessa parte meu código está assim:

public class ContaPoupanca extends Conta {
    public void atualiza(double taxa) {
        this.saldo += this.saldo * (taxa * 3);
    }

    public void deposita(double valor) {
        if (valor > 0) {
            this.saldo += valor - 0.10;
        } else {            
            throw new IllegalArgumentException();
        }
    }
}
public class TestaDeposita {
    public static void main(String[] args) {
        Conta cc = new ContaPoupanca();
        try {
        cc.deposita(-100);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }        
        System.out.println("Saldo: " + cc.getSaldo());
    }
}
7 respostas

Como você já está na aula de Orientação a Objeto, já deve ter visto algo sobre construtores, senão da uma revisada. Mas o exercício se refere ao construtor da classe de exceção.

throw new IllegalArgumentException("Sua mensagem aqui!");

Leonardo, assim como tu, eu tampouco entendi o ENUNCIADO.

Eu acabei olhando a resposta. E continuei achando que eu não estava usando o construtor, mesmo olhando o gabarito.

Enviei contato através do link que tem em baixo da pergunta, sobre acerto de enunciado, mas a resposta me deu preguiça de seguir adiante(rs), pois pediram para eu lançar a dúvida no fórum; Então pra quê existe o link?

Mas enfim, gostei de ver que não estou tão louco e que mais alguém pensa como eu.

Eu ia deixar quieto, mas como levantaste a questão, resolvi reforçar...

Agora uma pergunta pra ti João. Pressupões que, por estarmos na Aula de OO, já devemos ter visto algo sobre construtores.

Eu realmente vi, mas pra mim construtor é uma função, com o mesmo nome da classe. Por isto a minha dúvida...

Podia esclarecer melhor a tua resposta? Pois eu não consegui, ainda, identificar a utilização do construtor...

solução!

Sidnei, construtor é quase um metodo. Não deve ter retorno, tem o mesmo nome da classe e pode receber argumentos....mas não é considerado um método.

Quando o exercicio pede: "Ao lançar a IllegalArgumentException, passe via construtor uma mensagem a ser exibida."

Está explicando que ao lancar a IllegalArgumentException deve-se passar a String no construtor dessa classe. IllegalArgumentException é uma classe, como podemos observar tem um "new":

throw new IllegalArgumentException("Sua mensagem aqui!");

o construtor que o exercicio se refere é o construtor da classe IllegalArgumentException que tem uma argumento, a mensagem do erro. Mensagem essa que podemos recurar depois no metodo: e.getMessage();

Valeu Tiago.

Assim que postei, cheguei a pensar que a resposta seria esta.

Agora compreendi!

Vlw galera pela ajuda! ;)

Também tive a mesma dúvida quanto ao construtor. Não sabia que o construtor, no texto do exercício, se referia ao construtor da classe IllegalArgumentException.

Fica como sugestão uma mudança no enunciado do exercício, com uma breve explicação sobre o construtor que o texto se refere.

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