StackOverflowErrorStackOverflowError
Der Call-Stack hat seine maximale Größe überschritten, meist durch tiefe oder unendliche Rekursion.
Was verursacht diesen Fehler
Eine Methode ruft sich selbst rekursiv ohne korrekten Basisfall auf, oder gegenseitige Rekursion zwischen Methoden erzeugt eine Endlosschleife. Jeder Methodenaufruf verbraucht Stack-Speicher, bis das Limit erreicht ist.
So beheben Sie ihn
Den Basisfall in rekursiven Methoden hinzufügen oder korrigieren. Rekursion in Iteration umwandeln. Die Stack-Größe mit dem JVM-Flag -Xss erhöhen. Auf versehentliche unendliche Rekursion in Konstruktoren oder toString-Methoden prüfen.
Beispiel
void recurse() { recurse(); }Verwandte Fehlercodes
NoClassDefFoundErrorNoClassDefFoundError
Eine Klasse wurde zur Kompilierungszeit gefunden, kann aber zur Laufzeit nicht geladen werden.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
Das Löschen eines Verzeichnisses schlägt fehl, weil es nicht leer ist.
IOExceptionIOException
Eine I/O-Operation schlägt fehl oder wird unterbrochen.
InvalidClassExceptionInvalidClassException
Eine serialisierte Klasse weist eine inkompatible Version oder ein ungültiges Format auf.
IllegalArgumentExceptionIllegalArgumentException
Eine Methode empfängt ein Argument, das für den erwarteten Bereich oder das Format ungültig ist.
ConcurrentModificationExceptionConcurrentModificationException
Eine Collection wird während der Iteration verändert.