Перейти к содержимому
Исключения JavaКритическая
StackOverflowError

StackOverflowError

Стек вызовов превысил максимальный размер, как правило из-за глубокой или бесконечной рекурсии.

jvmandroid

Что вызывает эту ошибку

Метод вызывает себя рекурсивно без корректного базового случая, либо взаимная рекурсия между методами образует бесконечный цикл. Каждый вызов метода потребляет место в стеке до достижения лимита.

Как исправить

Добавьте или исправьте базовый случай в рекурсивных методах. Замените рекурсию итерацией. Увеличьте размер стека с помощью JVM-флага -Xss. Проверьте наличие случайной бесконечной рекурсии в конструкторах или методах toString.

Пример

void recurse() { recurse(); }
Официальная документация

Связанные коды ошибок