StackOverflowErrorStackOverflowError
De aanroepstack heeft zijn maximale grootte overschreden, meestal door diepe of oneindige recursie.
Wat veroorzaakt deze fout
Een methode roept zichzelf recursief aan zonder een juiste basiscase, of wederzijdse recursie tussen methoden creëert een oneindige lus. Elke methodeaanroep verbruikt stackruimte totdat de limiet is bereikt.
Hoe op te lossen
Voeg een basiscase toe aan recursieve methoden of corrigeer deze. Converteer recursie naar iteratie. Vergroot de stackgrootte met de JVM-vlag -Xss. Controleer op onbedoelde oneindige recursie in constructors of toString-methoden.
Voorbeeld
void recurse() { recurse(); }Gerelateerde foutcodes
NoClassDefFoundErrorNoClassDefFoundError
Een klasse is gevonden tijdens compilatie maar kan niet worden geladen tijdens de uitvoering.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
Het verwijderen van een map mislukt omdat de map niet leeg is.
IOExceptionIOException
Een I/O-bewerking mislukt of wordt onderbroken.
InvalidClassExceptionInvalidClassException
Een geserialiseerde klasse heeft een incompatibele versie of een ongeldig formaat.
IllegalArgumentExceptionIllegalArgumentException
Een methode ontvangt een argument dat niet geldig is voor het verwachte bereik of formaat.
ConcurrentModificationExceptionConcurrentModificationException
Een collectie wordt gewijzigd terwijl er overheen wordt geïtereerd.