Ola,
Bom, eu sei que precisamos validar os dados antes de armazená-los, porém, depois da validação, apenas no fato de armazenar o valor no atributo pode ocorrer algum problema? Tipo:
...
public int idade;
...
public setIdade(int idade){
this.indade = idade;
}
...
Ou seja:
1 - A simples inclusão de um valor em um atributo pode, mesmo com chances remotas, dar erro?
2 - Seria exagero sempre colocar o código em um try catch? Assim:
...
public int idade;
...
public setIdade(int idade){
try{
this.indade = idade;
} catch (Exception e){
...
}
}
...
[quote=NewScript]Ola,
Bom, eu sei que precisamos validar os dados antes de armazená-los, porém, depois da validação, apenas no fato de armazenar o valor no atributo pode ocorrer algum problema? Tipo:
...
public int idade;
...
public setIdade(int idade){
this.indade = idade;
}
...
Ou seja:
1 - A simples inclusão de um valor em um atributo pode, mesmo com chances remotas, dar erro?
2 - Seria exagero sempre colocar o código em um try catch? Assim:
...
public int idade;
...
public setIdade(int idade){
try{
this.indade = idade;
} catch (Exception e){
...
}
}
...
[/quote]
Amigo bom dia, seu exemplo esta errado…
this.idade
e não this.indade
sobre lançar exceção você deveria estudar antes como realizar verificação, mas certa vez eu li que mais frente a verificação não deva ser feita em classes modelo como essa…aonde se realiza o getter e setter, mas como você quer testar tudo bem para entender…
sua exceção não esta verificando nada…
Não, a simples atribuição não pode disparar erros.
Mas o setter é útil para você colocar as suas validações, e disparar as suas exceções, por exemplo:
public setIdade(int idade){
if (idade < 0) {
throw new IllegalArgumentException("A idade não pode ser negativa!");
}
this.idade = idade;
}
Assim, você pode garantir que, dentro da classe, não existem atributos com valores malucos.