Java Fehler: java.lang.StackOverFlowError beheben?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Studium / Ausbildung – Bachelor

Mikaai 
Beitragsersteller
 29.09.2016, 17:36

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(); 

}

0
FouLou  29.09.2016, 17:38
@Mikaai

Das sollte eigentlich kein Problem sein. Wobei es natürlich davon abhängt was in artikelHolen passiert.

Du kannst im normalfall innerhalb einer methode die gleiche methode so oft aufrufen wie du möchtest.

0

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.


Mikaai 
Beitragsersteller
 29.09.2016, 17:36

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(); 

}

0
PeterKremsner  29.09.2016, 17:40
@Mikaai

An dem sehe ich an sich jetzt kein Problem.

Das Problem liegt also eher in der Methode artikelHolen.

0