catch mit finally

Status
Nicht offen für weitere Antworten.

Urs

Mitglied
Hallo, ich habe eine Methode mit einem String als return-Wert, der am Anfang der Methode mit "ERROR" initialisiert wird. Die Methode hat einen catch-Block. Nun wenn eine Exception auftritt, wie sieht der return-Wert aus? Muss ich einen finally-Block machen in dem return String steht, damit ich einen gültigen return-Wert habe? Im Fehlerfall soll immer ERROR zurückgegeben werden.
Beispiel:
Code:
private String test() {
        String strRcv = "ERROR";
        try {
           ....
        }
        catch ( Exception e ) {
          ...
        }
        return strRcv;
    }
Code:
private String test() {
        String strRcv = "ERROR";
        try {
           ....
        }
        catch ( Exception e ) {
          ...
        }
        finally{
            return strRcv;
        }
    }

danke und Gruss Urs
 

Sky

Top Contributor
Ein Beispiel dazu:

Code:
   try {
      String s = null;
      s.indexOf("blupp"); // wirft NullPointerException
    }
    catch (IllegalArgumentException e) {
      System.err.println("Fehler !");
    }
    finally {
      System.out.println("finally"); // wird ausgegeben
    }
    System.out.println("Hinter try-catch-finally"); // wird nicht mehr ausgegeben

Anmerkung: Würde man anstatt der IllegalArgumentException die (richtige) Exception (=NullPointerException) catchen, so würde die letzte Anweisung System.out.println("Hinter try-catch-finally"); ausgeführt werden.

Ganz allgemeine Erklärung dazu: Die finally-Klausel wird immer dann ausgeführt (natürlich am Ende), wenn die zugehörige try-Klausel betreten wurde.
 

Eminent

Bekanntes Mitglied
Urs hat gesagt.:
Hallo, ich habe eine Methode mit einem String als return-Wert, der am Anfang der Methode mit "ERROR" initialisiert wird. Die Methode hat einen catch-Block. Nun wenn eine Exception auftritt, wie sieht der return-Wert aus? Muss ich einen finally-Block machen in dem return String steht, damit ich einen gültigen return-Wert habe? Im Fehlerfall soll immer ERROR zurückgegeben werden.
Beispiel:
Code:
private String test() {
        String strRcv = "ERROR";
        try {
           ....
        }
        catch ( Exception e ) {
          ...
        }
        return strRcv;
    }
Code:
private String test() {
        String strRcv = "ERROR";
        try {
           ....
        }
        catch ( Exception e ) {
          ...
        }
        finally{
            return strRcv;
        }
    }

danke und Gruss Urs

Ich würde es so machen:
Code:
String strRcv = "ERROR";
try {
   // Arbeiten
} catch (Exception e) { // Hier wenn möglich vielleicht die Exception die fallen kann abfagen (wenn es sich eingrenzen lässt)
// wenn Fehler aufgetreten zur Sicherheit String nochmal mit Error füllen (is nur notwendig, wenn der String vorher evtl. verändert wurde)
strRcv = "ERROR";
}
return strRcv;
Keine Ahnung was du im TRY machen willst, aber ein finally ist hier sicher nicht unbedingt notwendig.
 

Urs

Mitglied
d.h. also, wenn die entsprechende Exception gefangen wird, wird die return Anweisung immer ausgeführt. In welchem Fall braucht man einen finally-Block?
Gruss Urs
 
S

SlaterB

Gast
siehe Beispiel von sky,
für den Fall dass eine Exception nach außen geworfen wird (nicht abgefangen) hat man noch die Möglichkeit Code auszuführen,

das braucht man in deinem Beispiel nicht unbedingt, stimmt ;)

-------

wenn eine Exception nach außen geworfen wird gibts übrigens keinen Rückgabewert,
return irgendwas ist also in jedem Fall unnötig/ falsch?!

edit: ach ne klappt doch mit return, dann wird ja keine Exception mehr zurückgegeben..

siehe auch
http://www.galileocomputing.de/openbook/javainsel3/javainsel_070001.htm#Xxx998459
 

Leroy42

Top Contributor
Urs hat gesagt.:
d.h. also, wenn die entsprechende Exception gefangen wird, wird die return Anweisung immer ausgeführt.
Sie wird nur darum ausgeführt, weil sie direkt nach deinem try-catch-Block kommt.

finally brauchst du, wenn du Anweisungen hast, die in jedem Fall noch ausgeführt werden sollen

Klassisches Beispiel: Du willst eine Datei kopieren und öffnest beide Dateien im try-Block.
Auch die Kopieraktion selbst findet in diesem Block statt um IO-Exceptions aufzufangen.
Dann wird der finally Block benutzt um eventuell geöffnete Dateien sauber zu schließen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B try catch finally Java Basics - Anfänger-Themen 2
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
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
N try and catch block in finally Java Basics - Anfänger-Themen 8
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
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
missy72 Catch Blöcke zusammenfassen Java Basics - Anfänger-Themen 6
Ostkreuz wie geht der catch? Java Basics - Anfänger-Themen 3
D try/catch-Block bei for-Schleife Java Basics - Anfänger-Themen 14
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
districon Try - Catch Java Basics - Anfänger-Themen 8
JavaNoobi Try and Catch und übergabe von Objekten Java Basics - Anfänger-Themen 2
Y Wie kann ich die Variable in der Try Catch returnen? Java Basics - Anfänger-Themen 3
B Try-Catch Block Java Basics - Anfänger-Themen 3
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
H throws und try catch Java Basics - Anfänger-Themen 8
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
I Try-Catch innerhalb eines Catchblocks Java Basics - Anfänger-Themen 1
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
V InputMismatchException (Try and catch) Java Basics - Anfänger-Themen 10
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
J Erste Schritte catch Exeption Parameter Java Basics - Anfänger-Themen 7
TheMenox Try and Catch Java Basics - Anfänger-Themen 12
J Try Catch Java Basics - Anfänger-Themen 6
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
J Code in Try-Catch Block wird nicht komplett ausgeführt Java Basics - Anfänger-Themen 5
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
A Nicht zu findender Fehler in einem try/catch Block Java Basics - Anfänger-Themen 6
F try/catch Ausführungen ? Java Basics - Anfänger-Themen 3
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
I Exception try-catch Java Basics - Anfänger-Themen 1
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
F try/catch - (else) Java Basics - Anfänger-Themen 11
L Warum ist der catch-Block nicht erreichbar ? Java Basics - Anfänger-Themen 8
C Problem mit try-catch in Schleife Java Basics - Anfänger-Themen 15
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
J Methoden try / catch exception Java Basics - Anfänger-Themen 5
S 'continue' in catch- und if-blöcken Java Basics - Anfänger-Themen 2
B Erste Schritte try-catch-Klauseln, überprüfte Ausnahmen Java Basics - Anfänger-Themen 4
D Erste Schritte Warum try-catch für FileWriter Java Basics - Anfänger-Themen 5
xehpuk Compiler-Fehler final Variable in try-catch Wert zuweisen Java Basics - Anfänger-Themen 8
F Exceptionbehandlung --> catch/throws Java Basics - Anfänger-Themen 11
M Try und Catch Java Basics - Anfänger-Themen 5
B Fehler mit try + catch verhindern Java Basics - Anfänger-Themen 8
N Catch Block in Try erzwingen Java Basics - Anfänger-Themen 14
E Problem mit for schleife/ try-catch block Java Basics - Anfänger-Themen 7
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
C Wiederholung von try-catch Java Basics - Anfänger-Themen 3
M exception catch falsch? Java Basics - Anfänger-Themen 11
S catch Exception erklären Java Basics - Anfänger-Themen 2
C Variable in try/catch Java Basics - Anfänger-Themen 10
B Try and Catch Java Basics - Anfänger-Themen 6
StrikeTom Ein paar(2) Fragen zu throws und try + catch Java Basics - Anfänger-Themen 6
J try und catch Java Basics - Anfänger-Themen 7
G Exceptionfreie Anweisungen in try-catch-Blöcke, Java Basics - Anfänger-Themen 6
B Exception vor catch Block definieren Java Basics - Anfänger-Themen 9
M Frage zu try ... catch Java Basics - Anfänger-Themen 9
S NumberFormatException , mit Try/Catch? Java Basics - Anfänger-Themen 7
B Try/catch Java Basics - Anfänger-Themen 11
M Try & Catch Java Basics - Anfänger-Themen 7
V Was ist ein Try-Catch Block Java Basics - Anfänger-Themen 4
M Nach catch mit der schleife weitermachen Java Basics - Anfänger-Themen 9
M try-catch, call-by-reference, Streaming und Strings Java Basics - Anfänger-Themen 10
S try-catch Java Basics - Anfänger-Themen 10
Tandibur Server führt "try-catch" nicht aus Java Basics - Anfänger-Themen 6
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
GambaJo Wann try.catch nutzen? Java Basics - Anfänger-Themen 11
H try catch Java Basics - Anfänger-Themen 4
I double-Variable außerhalb des Try-Catch-Blocks nicht gültig Java Basics - Anfänger-Themen 2
D Catch wiederholt sich ständig Java Basics - Anfänger-Themen 2
G Anwendung von try-catch Java Basics - Anfänger-Themen 10
G try. catch Verwendung Java Basics - Anfänger-Themen 11
M Try-Catch-Problem Java Basics - Anfänger-Themen 4
G habe ein Catch problem Java Basics - Anfänger-Themen 7
C Nach Catch-Klausel Programm weiter laufen lassen Java Basics - Anfänger-Themen 5
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5
C Frage zu try - catch (saubere Lösung?) Java Basics - Anfänger-Themen 3
G Bei catch beenden Java Basics - Anfänger-Themen 7
C Exceptions, try, catch --> Frage Java Basics - Anfänger-Themen 7
J Try-Catch-Frage Java Basics - Anfänger-Themen 13
B catch exception funktioniert nicht! Java Basics - Anfänger-Themen 14
D Frage try and catch Java Basics - Anfänger-Themen 7
ven000m try catch - was muss bei catch rein Java Basics - Anfänger-Themen 28
G Datenbank - catch Java Basics - Anfänger-Themen 2
H Konstruktor in Methode fremder Klasse: try-catch-Problem Java Basics - Anfänger-Themen 4
M return und try-catch Java Basics - Anfänger-Themen 6
M Try . catch erzwungen? Java Basics - Anfänger-Themen 11
F eigene Exception aus try-catch werfen Java Basics - Anfänger-Themen 10
A Syntaxproblem mit try und catch Java Basics - Anfänger-Themen 3
Silver-Blue fragen zu Swing und catch Exceptions Java Basics - Anfänger-Themen 2
G return fehler bei try catch Java Basics - Anfänger-Themen 8
H try und catch Java Basics - Anfänger-Themen 6
A try catch UNREACHABLE CODE Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben