Java Fehler: java.lang.StackOverFlowError beheben?
Es geht hier um eine Unterrichtsaufgabe bei der Artikel1 und Artikel2 in Haupt- und Nebenhalle aufgeteilt werden soll je nachdem welche Kapazität die Hallen besitzen.
Der Quellcode wird ohne Probleme compiled, jedoch scheitert es dann mit der Fehlermeldung, wenn ich versuche ein Objekt dieser Klasse zu erzeugen. Durch einigermaßen gute Englischkenntnisse kann man auch verstehen, dass das Programm irgendwie überlastet ist, aber jetzt meine Frage. Wie lässt sich dieses Problem beheben?
Leider lässt sich der Quellcode nicht einfügen, da er zu lang für das Fragefenster ist.
2 Antworten
Stackoverflow bedeutet das du irgendwo in deinen Aufrufen eine schleife drin hast. Meistens siehst du das schon am stacktrace weil sich immer und immer wieder die gleichen methoden wiederholen.
Hier mal ein einfaches beispiel:
public void foo(){
bar();
}
public void bar(){
foo();
}
Bei einem aufruf einer der beiden methoden wird es zu nem stackoverflow kommen weil die sich immer gegenseitig aufrufen.
Eventuell könntest du ja einfach den stacktrace der exception posten.
Den Fehler bekommt man oft wenn sich eine Funktion immer wieder selbst aufruft, also Prüfe zunächst mit dem Debugger ob das Programm nicht in so einer schleife hängt.
Vielen Dank!
Das Problem war, dass ich in einer Methode zwei mal dieselbe Methode aufrufen wollte.
Also ungefähr so, wobei beide Befehle noch in if Bedingungen verwickelt waren.
public void artikelAusgang()
{
lager1.artikelHolen();
lager1.artikelHolen();
}
An dem sehe ich an sich jetzt kein Problem.
Das Problem liegt also eher in der Methode artikelHolen.
Vielen Dank!
Das Problem war, dass ich in einer Methode zwei mal dieselbe Methode aufrufen wollte.
Also ungefähr so, wobei beide Befehle noch in if Bedingungen verwickelt waren.
public void artikelAusgang()
{
lager1.artikelHolen();
lager1.artikelHolen();
}