1. C++ / Говнокод #5375

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    CTvoid cSG5Exception::Get (CTstatus& Status,
                               CTsymbol& Error,
                               CTsymbol& SubError,
                               string& Description)
    {
       if (Description.c_str() != NULL) {
           Description = m_description;
       }
       Status = m_status;
       Error = m_error;
       SubError = m_subError;
    }

    итолианский с++ панимаш, рагацци.
    что они хотели в строках 6-8 сказать кануло в лету.
    и вместо 4 человеческих геттеров один бесполезный заху*чили. (бесполезный тем что четыре переменные всегда надо под рукой иметь.)

    Запостил: Dummy00001, 24 Января 2011

    Комментарии (10) RSS

    • CTstatus& Status,
      CTsymbol& Error,
      CTsymbol& SubError,
      Уберэксепшон, надэксепшон, эксепшон, субэксепшон, андерэксепшон.
      Ответить
      • Вообще, хорошая традиция заводить один класс эксепшон на все случаи жизни... :D
        Ответить
        • или даже не класс. Насколько я помню, плюсы позволяют в качестве эксепшона кидать что угодно
          Ответить
        • к слову там этот класс именно так и используется.

          там в двух разных краях проекта две несовместимые крайности: (выше) один эксепшн на все случаи жизни и по эксепшену на каждый уникальный случай. в добавок, в паре мест, в новом коде на это дело народ забил и пользуется третьей более осмысленой иерархией эксепшенов наследованой от std::exception. вообщем, разброд и шатание традиционные коммерческому софту который уже раз пять руки менял.
          Ответить
    • Если задушите автора -- мы свидетели, что это было состояние аффекта.
      Ответить
    • GПокемоновая обработка ошибок.
      Ответить
    • Метод `c_str()` класса `std::string` никогда не возвращает null pointer. Для пустой строки, например, возвращается указатель на строку "", но не null pointer. Что имел в виду аффтар - не ясно.
      Ответить
    • показать все, что скрытоНе уверен что исключения необходимы. Удалить полностью функцию, и пусть рантайм сам разбирается.
      Ответить

    Добавить комментарий