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

    −21

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
                    shadow_page.insert_record(index, record);
                } catch ( ... ) {
                    throw;
                }

    Запостил: Koshak90, 07 Февраля 2017

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

    • Наглядно показывает, что эта часть кода будет часто кидать исключения?
      Ответить
    • Когда поймал исключение и не знаешь, что с ним делать дальше.
      Ответить
      • Заметает следы в бектрейсе.
        Ответить
        • throw c параметрами разве не кидает исключение с оригинальным трейсом?
          Ответить
          • Трабла в том, что в крестовых исключениях нет бектрейса (если его туда не положить). Но после этого catch-throw, емнип, даже в дебаггере концов не найдёшь.
            Ответить
            • Не пизди давай много.
              Ответить
            • [propovednik]...не мечите жемчуга (бисера) перед свиньями, чтобы они, подняв рыла, не растерзали Вас в клочья. Лучше в ломбард отнесите.[/propovednik]
              Ответить
    • Если бы помимо throw там было бы еще что-нибудь - было бы понятнее. Мне кажется, такая конструкция полезна, когда основная логика обработки исключения находится где-то "выше", но при этом нужно сделать какие-то небольшие измнения на уровне данного класса.
      Вроде:
      try
      {
      shadow_page.insert_record(index, record);
      }
      catch ( ... )
      {
      m_someoneCounter = 0;
      throw;
      }
      Ответить
      • Это надо делать с помощью RAII.
        Ответить
        • Что-то мне подсказывает, что спринцовкой каноничнее будет.
          Ответить

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