Fehlerbehandlung finally weglassen??

Status
Nicht offen für weitere Antworten.

fsteinke

Mitglied
Hallo,

bin gerade etwas verwirrt.
Wenn ich ein try catch schreibe und im catch block meinen Fehler abfange werden die Anweisungen nach dem catch block ausgeführt. Das ist ja auch gut so.

Was aber hat dann finally für einen Sinn? Wozu brauche ich das dann noch wenn die anschließenden Anweisungen nach catch sowieso ausgeführt werden ist doch ein finally eigentlich überflüssig oder? Könnte meine Aufräumarbeiten ja auch da machen.

Habe da offensichtlich einen Mega Denkfehler.

Wer kann mir da einen Tip geben?


Gruß Frederick
 

Heady86

Bekanntes Mitglied
Hi,

finally ist z.B. sinnvoll bei Datenbankverbindungen. Da kannst du im finally Block angeben dass die Verbindung zur DB geschlossen wird bevor die Methode verlassen wird.
Dadurch wird die Verbindung immer richtig geschlossen wird, unabhängig davon ob der try block fehlerfrei ausgeführt wurde oder ob es Exceptions gab.

Grüße
 

fsteinke

Mitglied
Danke für die schnelle Antwort.

Da liegt ja gerade mein Problem.
Java:
try { 
			
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        con = DriverManager.getConnection(connectionUrl);
						
	}  catch (IOException e) { // fehlerbehandlung
		e.printStackTrace();			
	} 
		
	finally {				
        if (con != null) try { con.close(); } catch(Exception e) {}
        }
}

// hier (also nach finally) könnte con.close() doch auch stehen da er hier doch auch auf jeden fall landet
// ob mit oder ohne fehler oder übersehe ich da was?


gruß frederick
 

tfa

Top Contributor
Das finally wird auch ausgeführt, wenn der Code in deinem Catch-Block eine Exception wirft und abgebrochen wird:

Java:
public static void main(String[] args) throws Exception {
    try {
        System.out.println("try");
        throw new Exception();
    }
    catch (Exception x) {
        System.out.println("catch");

        if (true) {
            throw new Exception();
        }
    }
    finally {
        System.out.println("finally");
    }
    System.out.println("dead code");
}

Außerdem kannst du auch nur try-finally schreiben, ohne catch. Auch dann wird finally immer ausgeführt, ob eine Exception fliegt oder nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
M Best Practice Mehrstufige Fehlerbehandlung Java Basics - Anfänger-Themen 8
V Sudoku-Solver Probleme bei der Fehlerbehandlung Java Basics - Anfänger-Themen 12
K Fehlerbehandlung beim Parsen von Strings Java Basics - Anfänger-Themen 9
D MVC Fehlerbehandlung Java Basics - Anfänger-Themen 18
C Prozess Fehlerbehandlung Java Basics - Anfänger-Themen 2
M Fehlerbehandlung Java Basics - Anfänger-Themen 6
N Fehlerbehandlung Java Basics - Anfänger-Themen 12
M Fehlerbehandlung Java Basics - Anfänger-Themen 3
S Fehlerbehandlung Java Basics - Anfänger-Themen 12
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
B try catch finally Java Basics - Anfänger-Themen 2
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
S try-catch-finally-Problem Java Basics - Anfänger-Themen 10
T Sinn von finally? Java Basics - Anfänger-Themen 3
N try and catch block in finally Java Basics - Anfänger-Themen 8
J finally Java Basics - Anfänger-Themen 5
M try finally Java Basics - Anfänger-Themen 4
C try finally - Streams schließen Java Basics - Anfänger-Themen 7
S sauberer Stil von return Wert (try, catch, finally) Java Basics - Anfänger-Themen 9
I Frage zu Try - Catch - Finally Java Basics - Anfänger-Themen 10
T try-catch-finally Java Basics - Anfänger-Themen 8
U catch mit finally Java Basics - Anfänger-Themen 5
G InputStream im finally-Block schließen Java Basics - Anfänger-Themen 7
M Beispiel für sinnvolles finally? Java Basics - Anfänger-Themen 17
T Programm so abbrechen, dass finally ausgeführt wird Java Basics - Anfänger-Themen 7
I Aufzählungszeichen bei letztem ArrayIndex weglassen Java Basics - Anfänger-Themen 6
B System. < weglassen? Java Basics - Anfänger-Themen 13
A public/private/etc. Zusatz weglassen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben