StackOverflowErrorStackOverflowError
Стек вызовов превысил максимальный размер, как правило из-за глубокой или бесконечной рекурсии.
Что вызывает эту ошибку
Метод вызывает себя рекурсивно без корректного базового случая, либо взаимная рекурсия между методами образует бесконечный цикл. Каждый вызов метода потребляет место в стеке до достижения лимита.
Как исправить
Добавьте или исправьте базовый случай в рекурсивных методах. Замените рекурсию итерацией. Увеличьте размер стека с помощью JVM-флага -Xss. Проверьте наличие случайной бесконечной рекурсии в конструкторах или методах toString.
Пример
void recurse() { recurse(); }Связанные коды ошибок
NoClassDefFoundErrorNoClassDefFoundError
Класс был найден на этапе компиляции, но не может быть загружен во время выполнения.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
Удаление директории завершается неудачей, потому что директория не пуста.
IOExceptionIOException
Операция ввода-вывода завершается неудачей или прерывается.
InvalidClassExceptionInvalidClassException
Сериализованный класс имеет несовместимую версию или недопустимый формат.
IllegalArgumentExceptionIllegalArgumentException
Метод получает аргумент, недопустимый с точки зрения ожидаемого диапазона или формата.
ConcurrentModificationExceptionConcurrentModificationException
Коллекция изменяется в процессе итерации по ней.