необъяснимый стектрейс
из прода последнее время начал приходить такой стектрейс:
TypeError: Error #1009 at com.rhyboo.puzzles.game::Game2/onMU() Пытаясь, найти на какой строке в методе он вылазит, расставил запись в лог после каждой строки.И какого же было мое удивление когда в логе пришло все что должно написаться в этом методе и после последнего лога этот эрор.Т.е. метод выполняется без ошибок, а на выходе из него вылазит пакость.Cобираю с sdk Flex 4.6.0,AIR 22.0 |
Чудес не бывает. Трейсить нужно тщательнее.
|
Цитата:
Код AS3:
Цитата:
|
Ну и ? Так ошибка очевидна вообще то : *Так вот в логе приходит такое* - значит в вашем LoggerBox и летит все к чертям после трейса
|
Цитата:
Без ошибки логербокс вообщее спит и факт пришедшего репорта как раз говорит что отработал он на ура. |
Возможны такие варианты:
1) Используется сторонняя либа, в которой зашит блок try / catch, а в нем с блоке catch сделано так: Код AS3:
А вообще, покажи ка лучше свой метод. А то тут пальцем в небо гадания |
Цитата:
Код AS3:
|
Очень сложная функция (высокая цикломатическая сложность, т.е. много блоков и переходов между ними). Компилятор мог ошибочно сгенерировать код в котором неправильно указал исходную позицию в коде. Нужно смотреть дизассемблер этой функции. А еще лучше - разбить функцию на более короткие функции.
|
Код AS3:
Кстати, проверка contains тоже не самый лучший вариант. Лучше проверяй поле parent. И еще, за массивами замечено, то если удаляешь что-то из них в цикле, то это что-то может не удалиться сразу. После этого добавив что-то, ты задублируешь ссылку, а потом одна из них удалится. Какая именно не известно. А вот это что за фигня? Код AS3:
Это так задумано что ли? Или это опечатка? Уверен, что тут может падать) Вряд ли sel_group всегда совпадает с old_group до последнего индекса И еще. Что ты пытаешься здесь сделать? Зачем там проверка if (sel_group[i]) ? То есть ты пытаешься сначала этот объект откудато удалить (хотя по твоей же логике он может быть null) и только после этого проверяешь а не null ли он? И зачем его удалть откуда-то, а потом снова добавлять? Метод addChild уже и так подразумевает удаление из любого другого контейнера Код AS3:
|
undefined,
Была похожая проблема когда то, в чём причина так и не понял, да и не искал прям сильно, так как на работу приложения это не влияло. Выглядело так, словно любой рандомный блок кода генерировал исключение в любом месте выполнения программы. Это были и просто обработчики гуи, и циклы и загрузчики, при этом блок кода не прерывался и выполнялся как положено. Компилировалось это тогда старым sdk, который не поддерживал инлайны. |
Часовой пояс GMT +4, время: 01:47. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.