3 Stimmen

Wie funktioniert throw new exception innerhalb eines Catch-Blocks?

Ich habe ein Snippet wie folgt:

try
{
   //blah!!
} 
catch(IOException e)
{
   throw new RuntimeException(e);
}

Ich verstehe nicht, wie das obige funktioniert? Wird es eine IOException catch und wenn ja, wird es dann eine RuntimeException throw? In diesem Fall wird die IOException keine Bedeutung haben, richtig? Ein Beispiel würde helfen.

1voto

Martijn Courteaux Punkte 65602

Nein. Bei RuntimeException gibt es etwas Besonderes. Wenn Sie eine RuntimeException werfen möchten, benötigen Sie kein throws RuntimeException in der Methodensignatur. Dies wird als unbehandelte Ausnahme bezeichnet. Dieser Code wickelt die IOException in eine RuntimeException ein und gibt sie an den Aufrufer zurück, was meiner Meinung nach in den meisten Fällen ein schlechter Ansatz ist.

Alle Unterklassen von RuntimeException sind unbehandelt, wie z.B. IllegalArgumentException, NullPointerException, usw...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X