Gå till innehåll
Java-undantagKritisk
StackOverflowError

StackOverflowError

Anropsstacken har överskridit sin maximala storlek, vanligtvis på grund av djup eller oändlig rekursion.

jvmandroid

Vad som orsakar detta fel

En metod anropar sig själv rekursivt utan ett korrekt basfall, eller ömsesidig rekursion mellan metoder skapar en oändlig loop. Varje metodanrop förbrukar stackutrymme tills gränsen nås.

Hur man åtgärdar det

Lägg till eller korrigera basfallet i rekursiva metoder. Konvertera rekursion till iteration. Öka stackstorleken med JVM-flaggan -Xss. Kontrollera om oavsiktlig oändlig rekursion finns i konstruktorer eller toString-metoder.

Exempel

void recurse() { recurse(); }
Officiell dokumentation

Relaterade felkoder