1. C# / Говнокод #11692

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    try
    {
            concreteSubService.Price = strategy.GetPrice(concreteSubService);
    }
    catch (Exception ex)
    {
           throw ex;
            strategy.Dispose();
    }

    очень заботливый код, нежно очищающий память

    Запостил: GeaR, 03 Сентября 2012

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

    • Недосягаемость?
      Ответить
      • Это во-первых. Во-вторых, конструкция try-catch, использующаяся ради недосягаемости :)
        Ответить
        • Вопрос к мажорам диезам: а что же компилер помалкивает?
          Ответить
          • Может, и не помалкивает, только кто ж его слушает?
            Ответить
          • Он не помалкивает. По варнингу я и нашел это излияние моего коллеги.
            Ответить
            • Жаба компилятор в этом плане строже
              http://ideone.com/CvL78
              Ответить
              • Что в с++ ворнинг, то в жабе смерть.
                Ответить
                • -Werror
                  Ответить
                  • -Ewarning
                    Ответить
                    • /force
                      (но это для линкера от MS, создавать образ даже при отсутствующих или конфликтующих символах)
                      Ответить
                      • А зачем это нужно если не секрет? Программа же все равно получится некорректной, и, скорее всего, будет крашиться на вызове неразрешившихся символов...
                        Ответить
                        • Сложно сказать... Дуплицирование понятно, вдруг у меня в двух библиотеках определена функция типа CopyMemory - тогда какая разница, какая прилинкуется. А отсутствующие... Ну, скажем, libjpeg у меня не собирается, а разбираться или выдирать ее из программы некогда - вечером релиз. Вот и напишем "All image files (*.bmp; *.png)", авось не заметят.
                          Ответить
                          • > тогда какая разница, какая прилинкуется
                            Хуяссе у вас подход к разработке...
                            Ответить
                            • Короче, чтобы можно было использовать криво сделанные библиотеки, которые нет возможности перекомпилировать. По крайней мере, что могу придумать.
                              Ответить
      • То есть, не смотря на то, что конструкция является причиной недосягаемости, она была создана для того, чтобы отработать недосягаемый код. В этом соль.
        Ответить
        • Ох уж эти дотнэтчики...
          Просто оставлю это здесь:
          http://stackoverflow.com/questions/12222077/what-does-0-do
          Ответить
          • Троллите? Я же это выложил, чтобы улыбнуться.
            Ответить
            • >Троллите?
              А смысл?

              >Я же это выложил, чтобы улыбнуться.
              А я - нет.
              Ответить
    • По идее, Dispose нужно поместить в блок finally.
      Ответить
      • Ага. И catch тогда не нужен.
        (это если using не подходит)
        Ответить
    • Отступы разные у структуры обработки ошибки и у полезного кода.
      Могу предположить, что структуру и код писали в разное время. Или что try-catch-throw были вставлены через снипет.
      Ответить
      • Или кодер уронил карандаш на пробел.
        Ответить
        • просто когда я вставил код, он отформатирован был не так, как хотелось бы. Поправил. Оказалось на один пробел ошибся.
          Ответить
          • >на один пробел ошибся
            Да, но где здесь питон, юзернэйм?!
            Ответить
            • при написании данного коммента, я прямо сейчас вижу "Где здесь C++, GeaR?!" =)
              Ответить

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