sauberer Stil von return Wert (try, catch, finally)

Status
Nicht offen für weitere Antworten.

Sempah

Bekanntes Mitglied
Hallo zusammen,

ich habe eine Methode methodeX:

Code:
public String methodeX(String nameX) {
  String nameY = null;

  try {
    nameY = nameX;
  } catch (Exception e)
  // ...
  } finally {
  return nameY 
  }
}

Eclipse meckert mit dem Warning: "finally block does not complete normally"
Jetzt könnte ich entweder eine Annotation (SuppressWarnings...) einfügen oder das "return nameY" nach dem finally schreiben.

Aber wie ist hier der saubere Stil?
 

Der Müde Joe

Top Contributor
Im finally-block nie ein return. Der finally-block wird immer ausgeführt und darum werden alle
Exceptions oder vorherigen returns verschluckt.
 
B

Beni

Gast
Im finally Block gehört kein return.

Gehen wir mal davon aus, dass im try-catch ein Error geworfen wird. Diesen Error fängst du nicht. Es geht in den finally-Block und dort steht ein return... ja was denn nun? Wird der Error weitergeworfen oder verschluckt (es gibt natürlich eine Antwort, aber darum geht es mir nicht)? Die Situation ist total unklar: deshalb gehört das return nicht in den finally Block.
 

faetzminator

Gesperrter Benutzer
Code:
public String methodeX(String nameX) {
  String nameY = null;

  try {
    nameY = nameX;
  } catch (Exception e)
  // ...
  }
  return nameY; 
}
 

Sempah

Bekanntes Mitglied
Okay das das return-Statement nicht in den finally-Block gehört habe ich mir schon gedacht bzw. gelesen, aber was ich deklariere ja schon vorher die Variable (welche ich übergebe) und initialisiere sie mit null.
Im Try-Block weise ich lediglich einen neuen Wert zu.

Also auch wenn eine Exception übergeben wird, könnte doch dann im finally ein Wert (eben mit null) übergeben werden?
 

musiKk

Top Contributor
Ja, aber das return macht man trotzdem nicht im finally-, sondern im catch-Block (oder ganz danach, je nach dem).
 

Orri

Mitglied
Hallo

mich würde interessieren was es bedeutet mit dem finally genau auf sich hat. Hab schon verstanden das es ausgeführt wird. Aber warum wird eine variable welche im try und catch block zu finden ist nicht im finally block z.B ausgegeben.

Fehler: ... might not have been initialized... es geht hier um feld_ref.

Code:
try
		{
			feld_ref=new int[groeße];
			for(int i=0; i<feld_ref.length; i++)
				feld_ref[i]=1+i; 
		}
		catch(NegativeArraySizeException e1_ref)
		{
			feld_ref=new int[10];
			System.out.println(e1_ref.getClass().getName());
		}
		finally
		{
			for(int i=0; i<feld_ref.length; i++)
			{
				System.out.println("Wert "+ feld_ref[i]);

wenn mir da einer bitte helfen könnten wäre ich sehr dankbar.
 

AmunRa

Gesperrter Benutzer
Der Compiler kann nicht wissen, dass die Initalisierung funktioniert und für ihn ist damit nicht sichergestellt, dass im finally block
die Variable initialisiert ist.

Es könnte ja theoretisch seine, dass eine andere Exception geworfen wird und dann ist die var wirklich nicht initialisiert
 
Zuletzt bearbeitet:

musiKk

Top Contributor
Das ist ja eigentlich ganz normal das Prinzip vom Scope. Eine in einem Block lokal definierte Variable ist außerhalb des Blockes nicht sichtbar.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Schaltjahr: "sauberer" Code Java Basics - Anfänger-Themen 4
K Sauberer Programmierstil? Java Basics - Anfänger-Themen 3
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
D Was ist performanter und/oder sauberer? Java Basics - Anfänger-Themen 8
F Sauberer Programmierstyle: Klassenvariaben in Methoden benutzen? Java Basics - Anfänger-Themen 5
U Methoden Code Quality und Stil Java Basics - Anfänger-Themen 5
kaoZ Stil ? - ....Nein nicht das Ende des Besens ^^ Java Basics - Anfänger-Themen 11
M Vererbung Schlechter Stil? Java Basics - Anfänger-Themen 10
B Grundsätzliche Klassen-Struktur/Stil Java Basics - Anfänger-Themen 12
S Mein Code is unübersichtlich - besseren Stil Java Basics - Anfänger-Themen 6
S Unbeschaeftigten Thread in einer Schleife schlafen legen? Schlechter Stil? Java Basics - Anfänger-Themen 7
S Schlechter Stil beim Exception Handling Java Basics - Anfänger-Themen 6
J Getter und Setter auch intern benutzen - guter Stil? Java Basics - Anfänger-Themen 31
nabla Code Stil -- Eclipse Warnings Java Basics - Anfänger-Themen 9
H [Stil] Exceptions in der Klasse behandeln oder throwen? Java Basics - Anfänger-Themen 62
P DotComVersenken -Spiel im Schiffeversenken-Stil - erstellen- Komm jetzt nicht weiter. Java Basics - Anfänger-Themen 11
P Spiel im Schiffe-Versenken Stil, Problem mit Erstellung des zweidimensionalen ARRAYs Java Basics - Anfänger-Themen 7
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
U Vernünftige Strukturierung, Guter Stil,. Java Basics - Anfänger-Themen 12
K BufferedReader im Konstruktor // guter Stil ? Java Basics - Anfänger-Themen 2
F Zugriff auf Instanzvariablen, Frage zum guten Stil Java Basics - Anfänger-Themen 2
J Guter Stil der Java-Programmierung Java Basics - Anfänger-Themen 5
G Array mit Schleife durchlaufen - guter Stil? Java Basics - Anfänger-Themen 20
frau-u guter Stil - wie macht mans am Besten? Java Basics - Anfänger-Themen 8
H schlechter objektorientierter stil Java Basics - Anfänger-Themen 6
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
I Return Array Java Basics - Anfänger-Themen 4
Q return Ausgabe Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
G return 1 + methode Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
K Return in Schleife Java Basics - Anfänger-Themen 4
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S Missing return Java Basics - Anfänger-Themen 4
das_leon return message Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
R return: cannot find symbol Java Basics - Anfänger-Themen 2
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
K ArrayList ausgeben mit return Java Basics - Anfänger-Themen 6
M Return statement Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
M Abbrechen Methode ohne return Java Basics - Anfänger-Themen 3
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
L OOP Return Java Basics - Anfänger-Themen 10
L Erste Schritte Frage zu 'return' Java Basics - Anfänger-Themen 4
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
D Methoden Return-Wert wird nicht ausgegeben Java Basics - Anfänger-Themen 3
F Return-Anweisung Java Basics - Anfänger-Themen 2
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
B Methoden Probleme mit for Schleife und return Java Basics - Anfänger-Themen 5
Q Tastatureingabe direkt nach Eingabe (ohne zwischenzeitliches "Return" o.Ä ) weiterverwenden Java Basics - Anfänger-Themen 1
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
M Arrays als return Value? Java Basics - Anfänger-Themen 2
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
Z Methoden return nullprüfung Java Basics - Anfänger-Themen 7
O Java return in Schleife Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
K Erste Schritte "return" Problem bei Rekursion Java Basics - Anfänger-Themen 8
R If Verschachtelung und return; Java Basics - Anfänger-Themen 4
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Methoden Return Java Basics - Anfänger-Themen 8
T return-Wert verwenden? Java Basics - Anfänger-Themen 12
T Return eines Int-Werts? Java Basics - Anfänger-Themen 3
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
R Return in If Java Basics - Anfänger-Themen 10
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
G array return methode Java Basics - Anfänger-Themen 10
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
M Variablen return-array klonen Java Basics - Anfänger-Themen 3
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben