−18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 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,
27 Октября 2016
"Если товар уже есть, то ничего не делать"
Вообще смешно, но в окамле относительно нормальная практика кидать исключения для раннего выхода из цикла (там нет return/continue). Соль в том, что для каждого цикла нужно заводить отдельный тип исключений, чтобы случайно не помать чужую ошибку.
З.Ы. break - это catch снаружи цикла, а continue - внутри?
И всё это лишь частные случаи delimited continuation...
Выше версии он есть, но эти версии не кто не юзает.
Лучше б goto завезли, чтоб можно было из вложенных друг в друга циклов легко выпрыгивать
не язык, а сплошная стыдоба