−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
Steve_Brown 28.10.2016 10:22 # 0
"Если товар уже есть, то ничего не делать"
Vindicar 28.10.2016 11:04 # 0
roman-kashitsyn 28.10.2016 11:32 # +4
Вообще смешно, но в окамле относительно нормальная практика кидать исключения для раннего выхода из цикла (там нет return/continue). Соль в том, что для каждого цикла нужно заводить отдельный тип исключений, чтобы случайно не помать чужую ошибку.
guest 28.10.2016 17:26 # 0
guest 28.10.2016 17:35 # 0
bormand 28.10.2016 18:36 # +1
З.Ы. break - это catch снаружи цикла, а continue - внутри?
roman-kashitsyn 28.10.2016 18:57 # +1
И всё это лишь частные случаи delimited continuation...
Soul_re@ver 28.10.2016 19:00 # +6
_____ 29.10.2016 02:14 # 0
Выше версии он есть, но эти версии не кто не юзает.
----- 29.10.2016 03:23 # 0
_____ 29.10.2016 03:35 # 0
----- 29.10.2016 03:47 # 0
CHayT 28.10.2016 20:48 # +2
j123123 28.10.2016 21:40 # +1
Лучше б goto завезли, чтоб можно было из вложенных друг в друга циклов легко выпрыгивать
kurwa-nextgen 28.10.2016 21:43 # 0
j123123 28.10.2016 22:06 # 0
CHayT 28.10.2016 22:11 # 0
inkanus-gray 29.10.2016 01:51 # 0
barop 31.10.2016 05:08 # −63
не язык, а сплошная стыдоба