|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 201
|
[Java] Gestire eccezioni personalizzate
Ciao ho un problema con le eccezioni personalizzate
metodo A chiama metodo B metodo B chiama metodo C metodo C chiama metodo D dove il metodo A è nella classe_1, i metodi B e C sono nella classe_2 e il metodo D è nella classe_3. L'eccezione è lanciata dal metodo D e devo propagarlo fino al metodo A che mostra a video un messaggio di errore. So che devo usare throws, throw e catch ma come ? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Java?
__________________
http://www.tevigroup.it/ |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 201
|
Si, scusate
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Intendi una cosa del genere?
Codice:
public class Classe1 {
public void A() throws Exception {
new Classe2().B();
}
public static void main(String[] args) {
try {
new Classe1().A();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Codice:
public class Classe2 {
public void B() throws Exception {
C();
}
public void C() throws Exception {
new Classe3().D();
}
}
Codice:
public class Classe3 {
public void D() throws Exception {
throw new Exception();
}
}
__________________
http://www.tevigroup.it/ |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 201
|
Si la situazione è questa però il mio metodo D è cosi
public void D( ) throws Exception { try { if( a > 1) throw new PippoException( "errore" ); } catch ( PippoException de ) { throw de; } } |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Ma se la catturi non si propaga, in questo caso nel catch ne dovresti lanciare un altra che si propaga alle altre
__________________
http://www.tevigroup.it/ |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 201
|
Infatti, è un controsenso dire throws Exception e poi dire
catch(PippoException) dove PippoException extends Exception. Però potrebbero esserci altre eccezioni nel blocco try quindi se ho un eccezione PippoException la catturo e poi la "getto" mentre se ho altre eccezioni le "getto" al metodo chiamante. Ma perchè la PippoException la catturo e poi la getto ? Che senso puo avere ? |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Non credo ce l'abbia
__________________
http://www.tevigroup.it/ |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Allora devi fare:
Codice:
public void D () throws PippoException
{
...
if (a > 1)
throw new PippoException( "errore" );
...
}
Sarà poi compito del chiamante o catturarla (e gestirla) o dichiararla a sua volta con il throws. E così via...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:08.




















