Wenn eine IOException
in dem try{}
-Block auftritt,
was passiert?
Die Ausführung dieser Methode wird beendet und die Methode
gibt eine IOException
an den Aufrufer zurück.
finally{}
-Block
Wenn eine IOException
in diesem Programm auftritt, verliert es sofort die Kontrolle.
Die Ausnahme wird an die Methode weitergereicht, die sie aufgerufen hat.
In diesem Fall das Java Laufzeit System.
Die Ausführung wird für dieses Programm beendet.
Durch die Verwendung eines finally{}
-Blocks können Sie sicherstellen,
dass bestimmte Anweisungen immer ausgeführt werden,
egal wie der try{}
-Block verlassen wurde.
Hier ist die try/catch/finally{}
-Struktur.
try { // Anweisungen von denen einige // Ausnahmen auslösen könnten } catch ( IrgendeinExceptionTyp ex ) { // Anweisungen, um diesen Typ von Ausnahmen zu handhaben } .... // weitere catch-Blöcke catch ( EinWeitererExceptionTyp ex ) { // Anweisungen, um diesen Typ von Ausnahmen zu handhaben } finally { // Anweisungen, die ausgeführt werden // egal wie der try-Block verlassen wurde. } // weitere Anweisungen nach der Struktur
Es kann nur einen finally{}
-Block geben und er muss
auf die catch{}
-Blöcke folgen.
try{}
-Block normal verlassen wird (es sind keine Ausnahmen aufgetreten), dann
geht die Kontrolle direkt an den
finally{}
-Block.
Nach dem finally{}
-Block bekommen die Anweisungen, die auf die Struktur folgen, die Kontrolle.
try{}
-Block auf Grund einer Ausnahme verlassen wird,
die von einem catch{}
-Block behandelt wird,
wird zuerst dieser Block ausgeführt und dann
geht die Kontrolle an den
finally{}
-Block.
Nach dem finally{}
-Block bekommen die Anweisungen, die auf die Struktur folgen, die Kontrolle. try{}
-Block auf Grund einer Ausnahme verlassen wird,
die nicht von einem
catch{}
-Block behandelt wird,
geht die Kontrolle direkt an den
finally{}
-Block.
Nachdem der finally{}
-Block ausgeführt ist,
wird die Ausnahme an den Aufrufer zurückgegeben und es wird die Kontrolle
an den Aufrufer zurückgegeben.