fehlende return anweisung?

Br4ve

Bekanntes Mitglied
ICh habe mich mal wieder an einer weiteren Ausnahme versucht, das funktioniert auch so weit ganz gut doch nun gibt mir meine Methode aus es würde eine return anweisung fehlen!?
Java:
// gibt das Dokument beim Index zurück
    public Object getElement(int index) {
        try {
            if (index < 0 || index >= getSize()) {
                throw new VarArrayIllegalIndexException(
                "Fehler ungültiges Argument");
            } else {
                return elems[index];
            }
        } catch (VarArrayIllegalIndexException e) {
            System.out.println(e.getMessage());
        }
        
        
    }
 

eRaaaa

Top Contributor
Du musst in jedme Falle ein Object zurückgeben. Was ist jetzt aber, wenn index z.B. kleiner 0 ist? dann wirfst du eine Exception, fängst sie aber direkt(komisch? )... dort gibst du dann allerdings nichts zurück ?!
Daher wird gemeckert !
 

Painii

Bekanntes Mitglied
Wenn du die Exception selbst wirfst macht es ÜBERHAUPT keinen Sinn sie in der gleichen Methode zu fangen wie sie geworfen wird.

Das try/catch sollte an denjenigen fallen der die Methode aufruft.
 

Ark

Top Contributor
Hm, ich glaube, das mit den Exceptions hast du noch nicht ganz richtig verstanden: Entweder eine Methode wirft in einer ganz bestimmten Situation eine ganz bestimmte Exception, oder sie fängt Ausnahmen, die durch aufgerufene Methoden etc. entstehen, ab. In deinem Fall fängst du jedoch eine Exception ab, die du sogar erst selbst erzeugt hast. Das ist widersinnig. Entferne das try-catch-Konstrukt (also entferne alle catch-Blöcke komplett und umklammere den eigentlichen Code nicht mehr mit try) und lass stattdessen die Methode die Exception werfen.

Wozu ist VarArrayIllegalIndexException überhaupt gut? Und was macht dieses getSize()? Ich denke, das ist alles komplett überflüssig und deine Methode bräuchte nicht länger zu sein als eine Zeile Code.

Ark
 

Br4ve

Bekanntes Mitglied
Also zum return erstmal wenn ich in dem Array n negativen index eingebe, kann doch garkein Objekt zurückgegeben werden...
getSize() gibt die Größe des Arrays zurück.
Ich soll da eine ungeprüfte Ausnahme implementieren. Der Aufruf der Methode findet dann ja direkt in der Mainmethode statt, macht es denn sinn die da zu fangen?
 

eRaaaa

Top Contributor
Also zum return erstmal wenn ich in dem Array n negativen index eingebe, kann doch garkein Objekt zurückgegeben werden...

Deshalb sollst du ja auch wahrscheinlich eine Exception werfen:

Java:
    public Object getElement(int index) {
	if (index < 0 || index >= getSize()) {
	    throw new VarArrayIllegalIndexException(
		    "Fehler ungültiges Argument");
	} else {
	    return elems[index];
	}
    }
 

Br4ve

Bekanntes Mitglied
Deshalb sollst du ja auch wahrscheinlich eine Exception werfen
Ok wo fange ich das denn ansonsten? Wenn ich den rest weglasse bekomme ich ja den Fehler "Syntax error, insert "Finally" to complete BlockStatements"
Meine main methode dazu:
Java:
 public static void main(String[] args) {
        VarArray neuesarray = new VarArray(1);
        Dokument eins = new Dokument("hallo", "dok1", AUDIO, true);
        Dokument zwei = new Dokument("nochmal", "dok2", PDF, false);
        neuesarray.addElement(eins);
        neuesarray.addElement(zwei);
        System.out.println("Hier sollte jetzt eine 2 stehen: " 
            + neuesarray.getSize());
        neuesarray.deleteElement(1);
        System.out.println("Dokument zwei geloescht, zeige Dokument eins an: ");
        System.out.println(neuesarray.getElement(0));
        
        VarArray arraytest = new VarArray(-3);
        neuesarray.getElement(3);
        neuesarray.getElement(2);
        neuesarray.getElement(1);
    }

   
}
 

Landei

Top Contributor
Stimmt ich brauch die garnich fangen..:lol:
Aber wie krieg ich denn das mit dem Fehler in den Griff?

Du wirfst nur eine Exception, wenn du ein Problem nicht lokal lösen kannst, aber die Vermutung hast, eine höhere Ebene könnte etwas sinnvolles tun. Also kümmert sich der Aufrufer der Methode, oder der Aufrufer des Aufrufers der Methode, oder... darum. Wie bei der Bundeswehr: Melden macht frei!
 

Br4ve

Bekanntes Mitglied
Das ist nur zum Prüfen ob meine andere Exception funktioniert...
Ich versteh leider nich so ganz, was ich da jez genau ändern muss ???:L
Also die main methode unten soll jez
Java:
neuesarray.getElement(3);
        neuesarray.getElement(2);
bei diesen beiden eingaben die Fehlermeldung "....ungültiges Argument" ausgeben, da neuesarray ja nur eine größe von 2 hat. Bei getElement(1); jedoch dürfte dann ja die Fehlermeldung nicht kommen...
 

Br4ve

Bekanntes Mitglied
Naja der Code so geht ja net
Java:
  public Object getElement(int index) {
        try {
            if (index < 0 || index >= getSize()) {
                throw new VarArrayIllegalIndexException(
                "Fehler ungültiges Argument");
            } else {
                return elems[index];
            }
        } 
       
        
    }
Weil mir hier bei der 2t letzten Klammer die Fehlermeldung angezeigt wird "Syntax error, insert "Finally" to complete BlockStatements" aber finally ist doch optional oder nicht?
 

Br4ve

Bekanntes Mitglied
Oh man stimmt :oops:
Ich bin auch langsam echt durch den Wind...nach paar std Java...
Also das funktioniert und bricht dann komplett ab, was bei einer RuntimeException ja auch so sein soll oder?
Einziges wehwehchen jez ist das wenn ich neuesarray.getElement(1) inner main aufrufe dann passiert genau das gleiche dabei ist doch neuesarray 2 felder groß(0 und 1)
Edit: Ach schon gut ich bin inzwischen wohl sogar zu doof um meine eigenen Code zu lesen, inner main Methode wird ja ein Objekt wieder gelöscht, daher hat das Array die größe 1 also nur index 0 is belegt...
Ich nerv euch dann mal nicht weiter, sollte ne pause machen :p
Trotzdem vielen Dank für die tolle Hilfe!
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Wir kennen ja deine Klasse VarArray nicht, aber so wie es aussieht: Du addest 2 mal Elemente, und löschst dann eins,demzufolge ist nach Adam Ries 2-1 = 1 Element noch im Array vorhanden, oder nicht?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
N Fehlende .class Datei Java Basics - Anfänger-Themen 4
NightmareVirus Java-Editor (G. Röhner): Fehlende Dateinamen Java Basics - Anfänger-Themen 1
A Fehlende Main-Methode? Java Basics - Anfänger-Themen 12
G fehlende Ausgabe Java Basics - Anfänger-Themen 13
S Fehlende Klammer '(' Java Basics - Anfänger-Themen 2
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
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
S probleme mit der return anweisung Java Basics - Anfänger-Themen 20
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
S Frage zu Vererbung und return. Java Basics - Anfänger-Themen 4
R return (mehrere floats) Java Basics - Anfänger-Themen 11
E Return String Java Basics - Anfänger-Themen 10
P Methoden Methode ohne return abbrechen? Java Basics - Anfänger-Themen 12
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
P Return aus For-Schleife Java Basics - Anfänger-Themen 19
S return in GUI ? Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
F Erste Schritte return (char)toUnsignedInt(value) Java Basics - Anfänger-Themen 2
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
M missing return statement?! Java Basics - Anfänger-Themen 4
L Return Fragen Java Basics - Anfänger-Themen 4
R Nach return() der aufgerufenen Methode wird aufrufende Methode nicht weiter ausgeführt Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben