Пакет | flash.errors |
Класс | public dynamic class StackOverflowError |
Наследование | StackOverflowError Error Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Исключение StackOverflowError может говорить о том, что произошла бесконечная рекурсия. В таком случае в функцию необходимо добавить случай завершения операции. Оно также может указывать на то, что рекурсивный алгоритм имеет правильное условие завершения операции, но стек все равно переполнен. В таком случае, попытайтесь сформулировать алгоритм в порядке итерации.
Общедоступные свойства
Общедоступные методы
Метод | Определено | ||
---|---|---|---|
StackOverflowError(message:String = "")
Создает новый объект StackOverflowError. | StackOverflowError | ||
Возвращает список вызовов для данной ошибки в момент ее конструирования в форме строки. | Error | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
[переопределить]
Возвращает строку Error по умолчанию или значение, содержащееся в свойстве Error.message, если оно определено. | Error | ||
Возвращает элементарное значение заданного объекта. | Object |
Сведения о конструкторе
StackOverflowError | () | Конструктор |
Примеры Использование этого примера
StackOverflowErrorExample.as
В следующем примере используется образец класса StackOverflowErrorExample, чтобы продемонстрировать ошибку, выдаваемую в случае переполнения стека. Это можно сделать, выполнив следующие действия:
- Конструктор вызывает метод
lockMachine()
в сегменте кода обработки ошибок, перехватывающего объекты StackOverflowError. - Метод
lockMachine()
вызывает себя, пока не переполнится стек. - После выдачи исключения 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(); } } }
Tue Jun 12 2018, 11:34 AM Z