Ich habe den folgenden CodeHinzufügen Rückkehr in schließlich versteckt die Ausnahme
public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
}
}
, die den Fehler
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type CustomException
gibt, die als erwartet, aber das Hinzufügen einer return
Anweisung im finally
Block den Fehler macht Geh weg
public static void nocatch()
{
try
{
throw new Exception();
}
finally
{
return; //makes the error go away!
}
}
Kann mir bitte jemand erklären, was ist geht es weiter? und warum der Fehler verschwindet?
Hinweis: Ich habe diesen Code nur für experimentelle Zwecke geschrieben!
Zugehörige Beitrag: [Versuchen Sie schließlich die Ausführung blockiert] (http://stackoverflow.com/q/18131447/1679863). Obwohl das nicht über die Ausnahme spricht, ist die Begründung dafür gleich. –
Randbemerkung: Versuchen Sie nicht, Code auszuführen, der nicht kompiliert wird. Das hat wirklich keinen Vorteil. Sprechen Sie über den Fehler bei der Kompilierung und nicht über die Ausnahme, die Sie beim Ausführen von Code erhalten, der noch nicht kompiliert wurde. –
@JonSkeet Ich wollte nur auf den Fehler hinweisen, den es verursacht hat, weshalb ich den Code ausgeführt habe. – codeMan