Время от времени я сталкиваюсь с исключением, создаваемым платформой Flex.Часто из ListBase кода, который отображает itemRenderers и тому подобное.Я ищу методы, чтобы использовать, чтобы выяснить, какой из моих экземпляров ListBase генерирует ошибку.
Сложность возникает, когда начало стека вызовов происходит в callLaterDispatcher ()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.controls.listClasses::ListBase/addToFreeItemRenderers()
at mx.controls.listClasses::ListBase/reduceRows()
at mx.controls.listClasses::ListBase/updateDisplayList()
at mx.controls.listClasses::TileBase/updateDisplayList()
at mx.controls.listClasses::ListBase/validateDisplayList()
at mx.managers::LayoutManager/validateDisplayList()
at mx.managers::LayoutManager/doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()
at mx.core::UIComponent/callLaterDispatcher()
Глядя на точку останова, которую я установил в ListBase :: addToFreeItemRenderers, я вижу, что элемент имеет значение null, которое передается функции, как показано ниже:
protected function addToFreeItemRenderers(item:IListItemRenderer):void
{
// The following item is NULL when the exception is being thrown...
if (item == null) return;
DisplayObject(item).visible = false;
var factory:IFactory = factoryMap[item];
...
Как мне определитьчто мне нужно выяснить?Я уже решал подобные проблемы раньше, но мне пришлось использовать магию и вуду, угадывать и добавлять вызовы callLater в мой код для исправления.
Спасибо