Przejdź do treści
Wyjątki JavaKrytyczny
StackOverflowError

StackOverflowError

Stos wywołań przekroczył swój maksymalny rozmiar, zazwyczaj z powodu głębokiej lub nieskończonej rekurencji.

jvmandroid

Co powoduje ten błąd

Metoda wywołuje siebie rekurencyjnie bez odpowiedniego przypadku bazowego lub wzajemna rekurencja między metodami tworzy nieskończoną pętlę. Każde wywołanie metody zużywa przestrzeń stosu, aż do osiągnięcia limitu.

Jak to naprawić

Dodaj lub napraw przypadek bazowy w metodach rekurencyjnych. Zamień rekurencję na iterację. Zwiększ rozmiar stosu za pomocą flagi JVM -Xss. Sprawdź, czy w konstruktorach lub metodach toString nie ma przypadkowej nieskończonej rekurencji.

Przykład

void recurse() { recurse(); }
Oficjalna dokumentacja

Powiązane kody błędów