Am confusi su come funziona, infine, parola chiave in realtà ...infine non funziona come previsto
prima del blocco try corre verso il completamento torna alla ovunque il metodo è stato invocato. Ma, prima di tornare al metodo di richiamo, il codice nel blocco finally viene ancora eseguito. Quindi, ricorda che il codice nel blocco finally verrà eseguito anche se c'è un'istruzione return da qualche parte nel blocco try.
quando si esegue il codice, ottengo 5 invece di 10 come mi aspettavo
public class Main {
static int count = 0;
Long x;
static Dog d = new Dog(5);
public static void main(String[] args) throws Exception {
System.out.println(xDog(d).getId());
}
public static Dog xDog(Dog d) {
try {
return d;
} catch (Exception e) {
} finally {
d = new Dog(10);
}
return d;
}
}
public class Dog {
private int id;
public Dog(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
http://stackoverflow.com/questions/65035/does-finally-always-ex-security-in-java –
infine il blocco viene eseguito dopo l'istruzione return, ecco perché si ottiene 5 non 10 –