StackOverflowErrorStackOverflowError
Anropsstacken har överskridit sin maximala storlek, vanligtvis på grund av djup eller oändlig rekursion.
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(); }Relaterade felkoder
NoClassDefFoundErrorNoClassDefFoundError
En klass hittades vid kompilering men kan inte laddas vid körning.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
En katalogradering misslyckas eftersom katalogen inte är tom.
IOExceptionIOException
En I/O-operation misslyckas eller avbryts.
InvalidClassExceptionInvalidClassException
En serialiserad klass har en inkompatibel version eller ogiltigt format.
IllegalArgumentExceptionIllegalArgumentException
En metod tar emot ett argument som inte är giltigt för dess förväntade intervall eller format.
ConcurrentModificationExceptionConcurrentModificationException
En samling modifieras medan den itereras.