ho provato il seguente frammento di codice:Tipo di ritorno con il try-catch-finally
private Integer getnumber() {
Integer i = null;
try {
i = new Integer(5);
return i;
} catch(Exception e) {
return 0;
} finally {
i = new Integer(7);
}
}
Questo metodo restituisce 5 e non 7.
Perché restituisce 5 e non 7?
Grazie in anticipo.
molto breve risposta "valore di i è già aggiornato nello stack quando si dice di ritorno i" in modo che non viene aggiornato quando si aggiorna in seguito – Algorithmist
@Algorithmist questo è corretto, il valore di ritorno è già in stack e modificando il valore in seguito non lo influenzerà. Sposta a una risposta. –
@ user2669894, la tua domanda ha una spiegazione ben dettagliata qui, http://stackoverflow.com/questions/8864230/javas-return-value-in-try-catch-finally-mechanism, cortesemente controlla. –