Показать сообщение отдельно
Старый 16.10.2009, 22:05
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 19  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Фишка как раз в том, что когда проблема случается в фреймворке, особенно, типа Флекс / Каирнгорм и т.п. То только на локализацию и выяснение, а что собственно произошло уходят иногда недели... и объяснить человеку, которому этот *****код состряпали за пару дней, что найти и ликвидировать ошибку будет очень сложно - сами понимаете... Фреймворк должны писать и тестировать куча талантливых програмистов, чтобы эта штука была пригодна к применению... а наши АС3 "фреймворки" соотносятся с нормальными разработками, как "Рабинович по телефону напел" с Бетховеном

Не ходя далеко за примером:
Код AS3:
        try
        {
            var result:Object = wrappedFunction.apply(thisArg, args);
            wrappedFunctionSuccessful = true;
            return result;
        }
        catch(itemPendingError:ItemPendingError)
        {
            itemPendingError.addResponder(new EvalBindingResponder(this, object));
            if (BindingManager.debugDestinationStrings[destString])
            {
                trace("Binding: destString = " + destString + ", error = " + itemPendingError);
            }
        }
        catch(rangeError:RangeError)
        {
            if (BindingManager.debugDestinationStrings[destString])
            {
                trace("Binding: destString = " + destString + ", error = " + rangeError);
            }
        }
        catch(error:Error)
        {
            // Certain errors are normal when executing a srcFunc or destFunc,
            // so we swallow them:
            //   Error #1006: Call attempted on an object that is not a function.
            //   Error #1009: null has no properties.
            //   Error #1010: undefined has no properties.
            //   Error #1055: - has no properties.
            //   Error #1069: Property - not found on - and there is no default value
            // We allow any other errors to be thrown.
            if ((error.errorID != 1006) &&
                (error.errorID != 1009) &&
                (error.errorID != 1010) &&
                (error.errorID != 1055) &&
                (error.errorID != 1069))
            {
                throw error;
            }
            else
            {
                if (BindingManager.debugDestinationStrings[destString])
                {
                    trace("Binding: destString = " + destString + ", error = " + error);
                }
            }
        }
Вот это достижение человеческого гения... (Это класс Binding, который используется во флексовом фреймворке на каждом шагу). Вот забиндили вы сеттер с ошибкой, ну и ищите его теперь по всему приложению...
__________________
Hell is the possibility of sanity