Ho il seguente codiceL'aggiunta di ritorno, infine, nasconde l'eccezione
public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
}
}
che dà l'errore
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type CustomException
Che è come previsto, ma l'aggiunta di una dichiarazione return
nel blocco finally
rende l'errore vai via
public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
return; //makes the error go away!
}
}
Qualcuno può spiegarmi che cos'è sta succedendo? e perché l'errore scompare?
Nota: Ho scritto questo codice esclusivamente per scopi sperimentali!
Post correlati: [prova a bloccare definitivamente l'esecuzione] (http://stackoverflow.com/q/18131447/1679863). Anche se questo non parla dell'eccezione, ma il ragionamento per questo è lo stesso. –
Side-note: non provare a eseguire codice che non viene compilato. Non c'è davvero alcun vantaggio nel farlo. Parla dell'errore in fase di compilazione, piuttosto che dell'eccezione ottenuta dal codice in esecuzione che non è stato compilato per iniziare. –
@JonSkeet Volevo solo segnalare l'errore che ha causato, motivo per cui ho eseguito il codice. – codeMan