giulio0 ha scritto:
se in finally sollevassi l'errore Ex1 questo verrebbe gestito dal catch precedente
La risposta è semplice:
no.
Se un finally lancia qualcosa, non è e non può essere il catch di quello stesso try-catch-finally a catturarlo. Dovrà essere qualcun'altro "a monte".
EDIT: questo (chiaramente inutile ma per esempio) dovrebbe chiarirti:
public static void prova() {
try {
int n = 10 / 0;
} catch (RuntimeException e) {
System.out.println(e);
} finally {
throw new IllegalStateException("Boh");
}
}
La divisione per 0 causa una eccezione ArithmeticException. Questa viene catturata dal catch e stampata.
Il finally lancia IllegalStateException e questa ESCE fuori dal metodo. Sarà il chiamante (o ancora più a monte) a dover far qualcosa.