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....