Boa tarde galera
Estou fazendo uns exercícios aqui com tratamento de exceções, e quero saber se esse código que escrevi está certo:
public void setNome( String nome ) throws IllegalArgumentException {
if ( nome == "" )
throw new IllegalArgumentException();
else
this.nome = nome;
}
A minha idéia é que esse set, no caso do nome vir em branco, vai passar um erro pra classe que o chamou (construtor), que irá passar para a classe que o chamou.
Isso está certo? A idéia é essa mesmo? Ou tenho que fazer o tratamento com try e catch ai mesmo?
Tenho que fazer o mesmo com o construtor? (throws …exception)?
Esse trecho de código q vc copiou está dentro de um POJO seu? Se tiver, acredito que talez não seja muito bom conter este tipo de “lógica” dentro dele
se for um sistema web, por exemplo, vc pode validar se o nome está vazio na própria camada web…ou então antes de setar suas propriedades dentro do POJO…
qnto ao seu código, acredito que seja melhor usar o .equals ao invés do == que voce usou…é mais garantido
e um outro conselho q eu daria ao seu código, é q vc nao precisa do else, pois se cair no if, o fluxo já será interrompido, então se vc tirar o else funcionará tb…
[]'sss!!!
Valdemar_Jr
Bem, acho que deveria ser assim mesmo, e onde esse método for chamado deverá ser tratada a exceção ou então lançar uma nova exceção. Alguém em algum momento deverá tratar essa exceção.
marcio0
leonickel:
marcio0,
Esse trecho de código q vc copiou está dentro de um POJO seu? Se tiver, acredito que talez não seja muito bom conter este tipo de “lógica” dentro dele
se for um sistema web, por exemplo, vc pode validar se o nome está vazio na própria camada web…ou então antes de setar suas propriedades dentro do POJO…
qnto ao seu código, acredito que seja melhor usar o .equals ao invés do == que voce usou…é mais garantido
e um outro conselho q eu daria ao seu código, é q vc nao precisa do else, pois se cair no if, o fluxo já será interrompido, então se vc tirar o else funcionará tb…
[]'sss!!!
É só um exercicio básico de criar uma classe agenda e depois criar o layout, com eventos e exceções. Isso aí é um trecho da classe agenda.
Valeu pela dica do else e do equals.
Eu queria fazer o tratamento no layout (mais especificamente, na parte em que ele cria um objeto agenda passando os atributos pelo construtor), se desse um erro, esse cadastro seria interrompido e a exceção tratada.
Valeu, é exatamente isso que quero fazer!
Marcio_Duran
marcio0:
Boa tarde galera
Estou fazendo uns exercícios aqui com tratamento de exceções, e quero saber se esse código que escrevi está certo:
public void setNome( String nome ) throws IllegalArgumentException {
if ( nome == "" )
throw new IllegalArgumentException();
else
this.nome = nome;
}
A minha idéia é que esse set, no caso do nome vir em branco, vai passar um erro pra classe que o chamou (construtor), que irá passar para a classe que o chamou.
Isso está certo? A idéia é essa mesmo? Ou tenho que fazer o tratamento com try e catch ai mesmo?
Tenho que fazer o mesmo com o construtor? (throws …exception)?
Obrigadão a quem puder ajudar!
PISTA
Toda exceção é a instância de uma classe que possui a classe Exception em sua hierarquia de herança.Em outras palavras, as exceções são sempre alguma subclasse de java.lang.Exception.
IllegalArgumentExcepiton (Lançada quando um método recebe um argumento formatado de forma diferente do que se espera)
:idea: Isto é de modo Programaticamente não pelo JVM
Parece a mesma coisa mas não é.
As condições de exceção são testadas com if normal. Se tudo der certo o codigo continua normalmente. não precisa de else. O teste de igualdade é com equals e não com ==.
Como vc aceita null então tem que ser escrito daquela forma.