Johnn
04-07-2008, 22:24
Poniamo che una classe A abbia un costruttore nel quale un'istruzione può sollevare un'eccezione magari perché un parametro passato in input per essere assegnato ad una variabile ha un valore non valido.
1) Immagino che sia meglio gestire l'eccezione direttamente all'interno del costruttore, giusto (nel codice seguente si deve inserire un blocco try catch)?
class A {
private int n;
public A(int n){
if(n<0)
throw new MyException();
else
this.n = n;
}
}
2) E' meglio usare un eventuale metodo setN nel costruttore invece del codice postato sopra?
2a) Nel caso affermativo, l'eccezione verrebbe sollevata dal metodo getN e nel costruttore dovrebbe essere solo gestita, giusto?
3) Ma è buona norma usare sempre e comunque i metodi get e set all'interno dei metodi di una classe per accedere agli attributi della stessa, anche nel caso non debbano essere fatti controlli su di essi? Non si avrebbero inutili cali di prestazioni (frequenti chiamate a funzione solo per accedere ad attributi della classe)?
Grazie.
1) Immagino che sia meglio gestire l'eccezione direttamente all'interno del costruttore, giusto (nel codice seguente si deve inserire un blocco try catch)?
class A {
private int n;
public A(int n){
if(n<0)
throw new MyException();
else
this.n = n;
}
}
2) E' meglio usare un eventuale metodo setN nel costruttore invece del codice postato sopra?
2a) Nel caso affermativo, l'eccezione verrebbe sollevata dal metodo getN e nel costruttore dovrebbe essere solo gestita, giusto?
3) Ma è buona norma usare sempre e comunque i metodi get e set all'interno dei metodi di una classe per accedere agli attributi della stessa, anche nel caso non debbano essere fatti controlli su di essi? Non si avrebbero inutili cali di prestazioni (frequenti chiamate a funzione solo per accedere ad attributi della classe)?
Grazie.