è vero, però dipende da dove valorizzo la varibile su cui poi si basa lo switch giusto?Originariamente inviato da Zero-2
SI che puoi gestire l'eccezzione sul tutto lo switch
metodo1 supponiamo lanci un eccezione , tu la gestiscicodice:boolean flag=true; do{ try{ switch(a){ case .. metodo1(); case ...metodo2(); case ...metodo1(); .... .... } }catch(Exception r){ if(gestibile)gestisci(); else flag=false;} }while(flag);
e riprendi il ciclo dallo switch.
Se la variabile a , supponendo che conteneva la condizione che ti ha fatto entrare nel primo case , non cambia , tu rientrerai sempre nel primo case .
perchè se questa sta fuori il "do" allora funziona come dici tu, solo che va all'infinito, nel senso che poi non si può più uscire dal case (perchè la variabile non può più essere modificata).
se invece la valorizzazione sta dentro allora non rientra più nel case che ha generato l'eccezione ma mi richiede di rivalorizzare la variabile.
dico bene? (ho provato e mi succede così!)