PDA

View Full Version : [java] eccezioni


Miky Mouse
23-12-2007, 17:42
rieccomi con questa odissea di java....

allora, ho un metodo che puņ sollevarmi un eccezione, allora lo chiamo dentro al try e faccio un catch sull'eccezione, ora il problema č, una volta gestita dentro al catch posso poi riprendere l'esecuzione da dove avevo trovato l'errore ripetendo l'istruzione o andando a quella subito sotto?
per normalmente in programma dopo il catch termina e basta... a me serve di riprenderlo.. forse non ho capito niente delle eccezioni? illuminatemi :D

mostec
23-12-2007, 18:09
un blocco catch non coincide con la fine di una procedura/metodo.

nel blocco try vanno messe le SOLE istruzioni che sono strettamente dipendenti dalla buona riuscita di un invocazione a un metodo, mentre nel catch devi inserire quelle istruzioni che appunto gestiscono quel determinato evento catturato.
le istruzioni che non sono dipendenti e che, come vuoi far tu, devono essere eseguite sia in caso di buona riuscita sia di eccezioni DEVONO essere all'esterno del blocco try catch.



per il tuo problema credo la soluzione sia questa..


try{
//metodo che puņ sollevare l'eccezione
}
catch( /*tipo di eccezione sollevata */ ){
//gestione dell'eccezione
}
istruzioni che vuoi vengano eseguite successivamente
....
...




se vuoi venga ripetuta l'operazione fai in modo analogo ovviamente predisponendo un apposito ciclo while che viene attivato nel blocco catch..
una cosa potrebbe essere questa:


boolean flag = false;
do{
try{
//metodo che puņ sollevare l'eccezione
}
catch( /*tipo di eccezione sollevata */ ){
//gestione dell'eccezione
flag = true;
}
} while (flag);
istruzioni che vuoi vengano eseguite successivamente
....
...





Saluti.

Morfeo XP
23-12-2007, 18:12
Potresti restrigere il blocco try alla sola istruzione che genera l'eccezione. In questo modo potrai riprendere dall'istruzione successiva.