Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   стек вызова как в ошибке? (http://www.flasher.ru/forum/showthread.php?t=146710)

micromacro 15.11.2010 21:27

стек вызова как в ошибке?
 
Не подскажите как в методе получить полный стёк вызова типа того, что мы получаем при ошибке?

dimarik 15.11.2010 21:39

Работает только для дебаг-версии FP.
Код AS3:

new Error().getStackTrace();

И да, ограничено по глубине. 64 последних вызовов.

f.g.programmer 15.11.2010 22:58

лучше так
Код AS3:

var stack_trace:String;
try{
    throw new Error();
}
catch(e:Error){
    stack_trace = e.getStackTrace();
}

чтобы в не дебаг не ломалось

Psycho Tiger 15.11.2010 23:25

Кстати, всё подумываю над использованием этой штуковины в консоли - аналоге trace, но видимой в ролике (например в браузере) для узнавания строчки местанахождения трейса...

dimarik 16.11.2010 02:05

Цитата:

Сообщение от f.g.programmer (Сообщение 950001)
лучше так
Код AS3:

var stack_trace:String;
try{
    throw new Error();
}
catch(e:Error){
    stack_trace = e.getStackTrace();
}

чтобы в не дебаг не ломалось

Вы сами тестили? А может я где-то упомянул в коде throw?
И ради всего, не раздражайте сокращениями типа "е". Рука не поднялась "rror" дописать?

BlooDHounD 16.11.2010 03:44

@f.g.programmer
а что в "недебаге" сломается? кто вас такому обучил?

Psycho Tiger 16.11.2010 15:28

Цитата:

Сообщение от BlooDHounD (Сообщение 950043)
@f.g.programmer
а что в "недебаге" сломается? кто вас такому обучил?

Наверное он думал что нужно бросить исключение, чтобы получить стэк. Ну, а брошенное исключение надо бы поймать, чтобы в дебаг не вываливалось РТЕ )

f.g.programmer 16.11.2010 23:05

Да, действительно работает. Там где я с этим встречался (примерно год назад) ошибка имела другую природу.
(new Error()).getStackTrace() в недебаг плеере возвращает null, а в TextField нельзя полю text присвоить значение null.
В общем tf.text = (new Error()).getStackTrace() в недебаг версии бросает исключение.
Наверно тогда я решил, что причина в new Error(), так как мало знал о TextField и вообще о многих нюансах флеша.


Часовой пояс GMT +4, время: 09:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.