Přeskočit na obsah
Java výjimkyFatální
StackOverflowError

StackOverflowError

Zásobník volání překročil svou maximální velikost, obvykle kvůli hluboké nebo nekonečné rekurzi.

jvmandroid

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(); }
Oficiální dokumentace

Související chybové kódy