Кресты / Говнокод #3610 Ссылка на оригинал

0

  1. 1
throw new std::bad_alloc();

У нас в кодеконвеншене принято передавать исключения по указателю. Вчера обнаружил вот это во многих перегрузках оператора new, да и в прочих местах по проекту.

Запостил: Говногость Говногость, (Updated )

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

  • Мило, а пацаны-то не знают и ловят-поди по ссылке :-(((
    Ответить
  • А зачем по указателю ? Это ж надо не забыть потом ещё удалить.
    Ответить
    • В данном случае bad_alloc может значить всё что угодно.
      Ответить
      • Не просто
        bad_alloc
        , а
        std::bad_alloc
        .
        Стандартную библиотеку С++ вам нужно повторить чуток...
        Ответить
        • try
          {
             throw std::bad_alloc();
          }
          catch( std::bad_alloc& err )
          {
             std::cout << "Нехватка памяти ?\n";
          }


          И где тут ошибка выделения памяти ?
          Ответить
          • Основной комментарий к коду прочтите:
            >Вчера обнаружил вот это во многих перегрузках оператора new, да и в прочих местах по проекту.

            Знаете, я тоже так могу сказать, что генерю исключение ArrayOutOfRange просто от нефиг делать везде по коду, что-бы его потом поймать try catch просто так. Это уже больше похоже на индуский стиль, где платят за строчки кода. В двойне говнокод.
            Ответить
            • Так а я о чем говорю. Следуя тому же комментарию к коду : "да и в прочих местах по проекту."
              Рукописная генерация исключения ещё ни о чем не говорит. Вот если бы родной не перегруженный new это генерил, тогда да - ошибка выделения памяти. А если уж кодер сам throw вызвал, то может быть всё что угодно, независимо от класса исключения. В гк именно этот самописный вызов.
              Ответить
  • > У нас в кодеконвеншене принято передавать исключения по указателю

    Ужас.
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8