StackOverflowErrorStackOverflowError
Zásobník volání překročil svou maximální velikost, obvykle kvůli hluboké nebo nekonečné rekurzi.
Co způsobuje tuto chybu
Metoda volá sebe sama rekurzivně bez správné základní podmínky, nebo vzájemná rekurze mezi metodami vytváří nekonečnou smyčku. Každé volání metody spotřebovává prostor na zásobníku, dokud není dosaženo limitu.
Jak to opravit
Přidejte nebo opravte základní podmínku v rekurzivních metodách. Převeďte rekurzi na iteraci. Zvyšte velikost zásobníku pomocí JVM příznaku `-Xss`. Zkontrolujte, zda v konstruktorech nebo metodách `toString` nedochází k neúmyslné nekonečné rekurzi.
Příklad
void recurse() { recurse(); }Související chybové kódy
NoClassDefFoundErrorNoClassDefFoundError
Třída byla nalezena při kompilaci, ale za běhu ji nelze načíst.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
Smazání adresáře selhalo, protože adresář není prázdný.
IOExceptionIOException
I/O operace selže nebo je přerušena.
InvalidClassExceptionInvalidClassException
Serializovaná třída má nekompatibilní verzi nebo neplatný formát.
IllegalArgumentExceptionIllegalArgumentException
Metoda obdrží argument, který neodpovídá očekávanému rozsahu nebo formátu.
ConcurrentModificationExceptionConcurrentModificationException
Kolekce je modifikována v průběhu iterace.