"PHP" / Говнокод #21593 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
try{
    $prodotto = $this->ci->phpsession->get( $this->PRODOTTO_SESSION_NAME);
    if(is_object($prodotto) && $prodotto->id==$params['id']){
        throw new Exception();  
    }
    $this->genero($params['id']);              
}catch(Exception $e){

}

Код грузит товар из БД. В переменной $param хранятся различные данные, в том числе и id записи. Если id товара, хранящийся в сессии, совпадает с id товара, который нужно загрузить, бросается исключение, которое отлавливается и ничего не делается. Нужна эта конструкция, по мнению разработчика, что бы не грузить товар из БД дважды.

Запостил: AlexeyRudkovskiy AlexeyRudkovskiy, (Updated )

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

  • По-своему логично.
    "Если товар уже есть, то ничего не делать"
    Ответить
  • Разумеется, единственное исключение которое может вылететь — то, что кидается из if...

    Вообще смешно, но в окамле относительно нормальная практика кидать исключения для раннего выхода из цикла (там нет return/continue). Соль в том, что для каждого цикла нужно заводить отдельный тип исключений, чтобы случайно не помать чужую ошибку.
    Ответить
    • вообще смешно, случайно поломал твою прямую кишку, проверь
      Ответить
      • Ни разу не смешно починил твою прямую кишку, проверь
        Ответить
    • Ужас. В lua аналогично было, но туда всё-таки завезли...

      З.Ы. break - это catch снаружи цикла, а continue - внутри?
      Ответить
      • > break - это catch снаружи цикла, а continue - внутри?
        И всё это лишь частные случаи delimited continuation...
        Ответить
        • в lua 5.1 нет goto
          Выше версии он есть, но эти версии не кто не юзает.
          Ответить
          • И правда, во многие программы встроен lua 5.1. Хотя тот же 5.2 можно скачать в уже скомпилированном виде для многих платформ.
            Ответить
            • большинство библ не переписываются, а версия 5.1 с 5.2 не совместима из-за выпиливаний некоторых функций. Кароче ситуация как с питоном.
              Ответить
              • Мне кажется, что с Питоном получше. Уже много чего переписали на тройку.
                Ответить
    • Кто сказал "продолжения"? Я точно слышал, кто-то сказал "продолжения"!
      Ответить
    • > Вообще смешно, но в окамле относительно нормальная практика кидать исключения для раннего выхода из цикла (там нет return/continue)

      Лучше б goto завезли, чтоб можно было из вложенных друг в друга циклов легко выпрыгивать
      Ответить
        • На окамле императивно можно писать, если что. Не то что хачкель какой-то
          Ответить
          • В хаскеле тоже можно, и память там руками можно. Но лучше не надо.
            Ответить
            • Только в Хаскеле лучше не надо, а в Окамле императивщина — основной стиль программирования.
              Ответить
  • лол, пхп такой пхп
    не язык, а сплошная стыдоба
    Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8