PDA

Visualizza la versione completa : [JAVA] try catch finally


luketto
11-07-2005, 12:50
Salve ragazzi,
nel costrutto try-catch-finally,
il finally viene eseguito in ogni caso?
Cioè sia se si verifica un eccezione, sia se non si verifica?

Se il metodo che contiene il try-catch deve restituire un valore, dove è più corretto mettere il return "valore"?
nel try o nel finally?

Ad esempio io devo fare un metodo che restituisce 1 se va bene, -1 se si è verificata un'eccezione!

Help me
Grazie
Luca

Mercuzio
11-07-2005, 13:39
Originariamente inviato da luketto
Salve ragazzi,
nel costrutto try-catch-finally,
il finally viene eseguito in ogni caso?
Cioè sia se si verifica un eccezione, sia se non si verifica?

il finally viene eseguito in ogni caso...




Se il metodo che contiene il try-catch deve restituire un valore, dove è più corretto mettere il return "valore"?
nel try o nel finally?

Ad esempio io devo fare un metodo che restituisce 1 se va bene, -1 se si è verificata un'eccezione!


se metti il return nel finally.... ti restituisce quel return tutte le volte... qualunque cosa succeda.


comunque si dovrebbe fare un try con un metodo, il quale avrà il suo return, ed il finally(che è opzionale) se proprio si vuole che comunque vada venga fatto qualcosa.

MatCap83
11-07-2005, 13:58
Sì, il finally viene eseguito in ogni caso, ovviamente se non viene messo il return prima del finally! Se devi far ritornare il valore 1 se va bene, allora il return va inserito nel try, mentre se nell' esecuzione del try viene sollevata l' eccezioneX, allora all' interno del catch (eccezioneX ex) fai ritornare il valore -1....

LeleFT
11-07-2005, 14:03
Alternativa: non mettere il finally, utilizza una variabile per il risultato e usa una sola istruzione return fuori dal try/catch. Così il metodo rimane più leggibile e manutenibile.


Ciao. :ciauz:

Loading