3
respostas

Quantidade Maxima de Telefones

Olá, o if não poderia ser telefones.size() >= 2, ou, se o aluno pode ter no máximo 2 telefones, também não poderia ser telefones.size() == 3 para lançar a exceção ?

public void adicionarTelefone( String ddd, String numero ) {
        if ( telefones.size() >= 2 ) {
            throw new QuantidadeMaximaDeTelefonesException();
        }
        this.telefones.add( new Telefone( ddd, numero ) );
    }
3 respostas

Oi Ivan,

A ideia é que esse método será chamado quando um novo telefone for adicionado e por isso o if mostrado na aula verifica se no momento atual já tem 2 telefones, que seria o máximo permitido, lançando exception para impedir que um terceiro telefone seja adicionado.

Colocar >= 2 teria o mesmo efeito, pois nunca será permitido adicionar mais do que 2 telefones na lista.

Bons estudos!

Olá Rodrigo,

É que achei confuso, não o if em si, mas a exceção quando é lançada. Sem debug, dá a entender que ao chegarmos na quantidade == 2, lança uma exceção, se eu estiver incluindo a terceira, não é igual a 2 então não lançaria... Sei que o código está correto e funciona, só não consegui entender a execução da lógica no papel...

Obrigado

Oi Ivan,

Ah sim, no caso deveria existir algum tipo de validação na tela do sistema que impediria o usuário de adicionar um terceiro telefone. Mas caso esse bloqueio seja "burlado", então o if da própria entidade faria uma última checagem, para evitar que um terceiro telefone seja adicionado.

Essa é a ideia dessa validação lançando a exception.