Главная / Action Script 3
Пакетflash.errors
Классpublic dynamic class StackOverflowError
НаследованиеStackOverflowError Inheritance Error Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

ActionScript выдает исключение StackOverflowError при исчерпании стека, доступного для сценария. ActionScript использует стек для хранения информации о каждом вызове метода в сценарии, например о локальных переменных, используемых методом. Доступный объем пространства в стеке варьируется в зависимости от системы.

Исключение StackOverflowError может говорить о том, что произошла бесконечная рекурсия. В таком случае в функцию необходимо добавить случай завершения операции. Оно также может указывать на то, что рекурсивный алгоритм имеет правильное условие завершения операции, но стек все равно переполнен. В таком случае, попытайтесь сформулировать алгоритм в порядке итерации.

Посмотреть примеры

См. также

Ответы на события ошибок и ошибки состояния


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 InheritederrorID : int
[только для чтения] Содержит номер ссылки, связанный с конкретным сообщением об ошибке.
Error
 Inheritedmessage : String
Содержит сообщение, связанное с объектом Error.
Error
 Inheritedname : String
Содержит имя объекта Error.
Error
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
  
Создает новый объект StackOverflowError.
StackOverflowError
 Inherited
Возвращает список вызовов в виде строки для ошибки в момент ее конструирования (только отладочная версия Flash Player).
Error
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строку "Error" по умолчанию или значение, содержащееся в свойстве Error.message, если оно определено.
Error
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о конструкторе
StackOverflowError()Конструктор
public function StackOverflowError(message:String = "")

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает новый объект StackOverflowError.

Параметры
message:String (default = "") — Строка, связанная с объектом ошибки.
Примеры Как пользоваться примерами
StackOverflowErrorExample.as

В следующем примере используется образец класса StackOverflowErrorExample, чтобы продемонстрировать ошибку, выдаваемую в случае переполнения стека. Это можно сделать, выполнив следующие действия:
  1. Конструктор вызывает метод lockMachine() в сегменте кода обработки ошибок, перехватывающего объекты StackOverflowError.
  2. Метод lockMachine() вызывает себя, пока не переполнится стек.
  3. После выдачи исключения StackOverflowError конструктор регистрирует его, а затем выдает сообщение об ошибке с помощью инструкции trace().
package {
    import flash.display.Sprite;
    import flash.errors.StackOverflowError;

    public class StackOverflowErrorExample extends Sprite {        
        public function StackOverflowErrorExample() {
            try {
                lockMachine();
            } 
            catch(e:StackOverflowError) {
                trace(e);    // StackOverflowError: Error #1023: Stack overflow.
            }
        }
        
        private function lockMachine():void {
            lockMachine();
        }
    }
}