Methode lässt sich nicht mehrmals aufrufen

Sabine.Quast

Mitglied
Hallo,

Mit dem Nachfolgendem Beispiel will ich Strings abfangen was auch klappt, nur wenn ich mehrmals die gleiche Methode in selection aufrufe, springt es zufällig irgendwann auf den finnaly - Teil obwohl es immer eine Int Eingabe ist. In der aufrufenden Methode erzeuge ich jedes mal ein neues Objekt , was dann zufällig in anderen Methoden aufgerufen wird und irgendwann gelöscht wird.


Code:
boolean test = true;
            while(test) {
                try {
                int choice = scanner.nextInt();
            if (choice == 1) {                }
                    selection(choice);
                    oneself();
                test = false;

            } catch (InputMismatchException test) {
                System.out.println("Bitte gib eine Zahl zwischen 1 -4  ein.");
            
            scanner.nextLine();

                    test = true;

            } finally {
                        oneself();
            }

Lg, Sabine.
 

Sabine.Quast

Mitglied
Und warum ist das ein Fehler? Der finally-Block wird IMMER ausgeführt. Egal, ob der try-Block normal oder abnormal (durch eine Exception) beendet wird.
hmm, ich versteh aber nicht wieso mein Objekt spontan einfach nach dem x- lauf nicht mehr erzeugt wird. Immerhin soll diese Methode nichts anderes außer das machen. Gibt es vlt eine ähnliche Exception die keine Probleme verursacht?
 

LimDul

Top Contributor
Keine Ahnung, was du genau tust oder tun willst und was genau das Problem ist. Der Ablauf der hier geposteten Methoden ist wie folgt:

Eingabe ist int:
Java:
selection(choice); // Der Aufruf selection(choice);
oneself(); // Der Aufruf direkt darunter
oneself(); // Der Aufruf aus dem finaly block

Eingabe ist kein int:
Java:
oneself(); // Der Aufruf aus dem finaly block
// Dann wieder Eingabe erfassen

Punkte die aufallen:
- Es fehlt eine schließende Klammer
- Die If-Bedingung ist total banane, da in der absolut gar nix passiert.
 
Zuletzt bearbeitet von einem Moderator:

TM69

Bekanntes Mitglied
Zuerst poste mal deinen ganzen Code und nicht ausschnittsweise.
Dann
Code:
if (choice == 1) {                }
Was willst du damit bezwecken? Eine Iff Abfrage ohne auszuführenden Code, ist sinnlos
Von While fehlt die schliessende Klammer,

@LimDul war schneller :confused::confused::confused:
 

Sabine.Quast

Mitglied
Erstmal danke für eure Hilfsbereitschaft, ich hab erstmal stundenlang rumprobiert und den Code ohne richtig zu schauen kopiert.
Den ganzen Code zu senden wäre zuviel, weil das Objekt über mehre Klassen hin und her springt.
Ich hab es jetzt soweit geschafft das alle Objekte bis auf eins erzeugt werden. Jetzt heißt es den Code Schritt für Schritt ausführen um das Problem zu erkennen.
 

Sabine.Quast

Mitglied
Mein Problem ist, ich erstelle durch Zufall Objekte. Alle Objekte können problemlos durch Aufrufen der Methode erstellt werden bis auf eins, dass eine vererbte Klasse eines anderen Objekts ist. Wenn ich Versuche das Objekt in der Methode zu erzeugen kann es random passieren das alles vor dem Objekt ausgeführt wird und dann ist die Methode auch zuende. Das Problem habe ich nur nicht, wenn ich das Objekt statisch erzeuge jedoch ändern sich dann nie die Attribute
 

TM69

Bekanntes Mitglied
Mein Problem ist, ich erstelle durch Zufall Objekte. Alle Objekte können problemlos durch Aufrufen der Methode erstellt werden bis auf eins, dass eine vererbte Klasse eines anderen Objekts ist. Wenn ich Versuche das Objekt in der Methode zu erzeugen kann es random passieren das alles vor dem Objekt ausgeführt wird und dann ist die Methode auch zuende. Das Problem habe ich nur nicht, wenn ich das Objekt statisch erzeuge jedoch ändern sich dann nie die Attribute
Dann poste doch mal deinen gesammten Code, dann kann dir hier sicherlich auch jemanden helfen. Aber ohne Hintergrundwissen wird es schwierig dir dabei zu helfen.
 

Sabine.Quast

Mitglied
Ich habe das Problem endlich gelöst. Es lag an einem Setter der String sein sollte aber void war. Der Setter sollte ein String überschreiben, mit void hat das zu 70% auch geklappt. Ich frag mich wieso dann das Objekt zufällig mal erzeugt wird und mal nicht, wenn was falsch ist sollte es doch gar nicht erst klappen, dann wüsste man auch von Anfang an ob das auch funktionieren wird.:rolleyes:

Den Code darf ich nicht vollständig posten da das Programm als Prüfung gilt.

Lg, Sabine
 

Neue Themen


Oben