Ho un piccolo problema teorico con le costruzioni try-catch.
Ieri ho fatto un esame pratico su Java e non capisco il seguente esempio:
try {
try {
System.out.print("A");
throw new Exception("1");
} catch (Exception e) {
System.out.print("B");
throw new Exception("2");
} finally {
System.out.print("C");
throw new Exception("3");
}
} catch (Exception e) {
System.out.print(e.getMessage());
}
La domanda era "come sarà l'output?"
Ero abbastanza sicuro che sarebbe stato AB2C3, ma sorpresa a sorpresa, non è vero.
La risposta giusta è ABC3 (testato ed è davvero così).
La mia domanda è: dove è finita l'eccezione ("2")?
print(e.getMessage())
. Pensavi che l'uscita sarebbe stata AB2C3
: pensavi che il catch
blocco più esterno sarebbe stato eseguito due volte?