class TestExceptions {
public static void main(String[] args) throws Exception {
try {
System.out.println("try");
throw new Exception();
} catch(Exception e) {
System.out.println("catch");
throw new RuntimeException();
} finally {
System.out.println("finally");
}
}
}
Di seguito sono riportate le uscite quando si tenta di eseguire il codice in eclissi più volte. Ho creduto finora che ogni volta che l'ultima riga del codice da entrambi i try/catch block sta per essere eseguita (che potrebbe essere restituita o lancia il nuovo tipo Exception() di stmt), infine verrà eseguito il blocco, ma qui l'output è diverso ogni volta? Qualcuno può chiarire se la mia ipotesi è giusta o sbagliata?Perché l'uscita è diversa ogni volta? try catch finally exception code
try
catch
Exception in thread "main" finally
java.lang.RuntimeException
at TestExceptions.main(TestExceptions.java:9)
Exception in thread "main" try
catch
java.lang.RuntimeException
at TestExceptions.main(TestExceptions.java:9)
finally
correlati: http://stackoverflow.com/questions/23588123/why-does-the-execution-order-between-the-printstacktrace-and-the-other-methods – JonK