РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
720 of 1163 menu

Класс StackOverflowError

Класс StackOverflowError является подклассом Error и возникает, когда приложение выполняет слишком глубокую рекурсию. Каждый вызов метода добавляет новый фрейм в стек вызовов. Когда количество фреймов превышает размер стека, выделенный виртуальной машиной Java, выбрасывается данная ошибка. Параметров у класса нет - это стандартный конструктор без аргументов и конструктор с сообщением.

Синтаксис

new StackOverflowError() new StackOverflowError(String message)

Пример

Давайте вызовем бесконечную рекурсию, чтобы получить переполнение стека:

public class Main { public static void main(String[] args) { try { recursive(); } catch (StackOverflowError e) { System.out.println("Caught: " + e.getClass().getSimpleName()); } } public static void recursive() { recursive(); } }

Результат выполнения кода:

"Caught: StackOverflowError"

Пример

Давайте создадим объект ошибки вручную и выведем его сообщение:

public class Main { public static void main(String[] args) { StackOverflowError err = new StackOverflowError("stack limit reached"); System.out.println(err.getMessage()); } }

Результат выполнения кода:

"stack limit reached"

Смотрите также

  • класс Error,
    который является родителем StackOverflowError
  • класс OutOfMemoryError,
    который сигнализирует о нехватке памяти
  • метод getMessage,
    который возвращает сообщение ошибки
  • метод printStackTrace,
    который выводит трассировку стека
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить