Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Код грузит товар из БД. В переменной $param хранятся различные данные, в том числе и id записи. Если id товара, хранящийся в сессии, совпадает с id товара, который нужно загрузить, бросается исключение, которое отлавливается и ничего не делается. Нужна эта конструкция, по мнению разработчика, что бы не грузить товар из БД дважды.
Разумеется, единственное исключение которое может вылететь — то, что кидается из if...
Вообще смешно, но в окамле относительно нормальная практика кидать исключения для раннего выхода из цикла (там нет return/continue). Соль в том, что для каждого цикла нужно заводить отдельный тип исключений, чтобы случайно не помать чужую ошибку.
"Если товар уже есть, то ничего не делать"
Вообще смешно, но в окамле относительно нормальная практика кидать исключения для раннего выхода из цикла (там нет return/continue). Соль в том, что для каждого цикла нужно заводить отдельный тип исключений, чтобы случайно не помать чужую ошибку.
З.Ы. break - это catch снаружи цикла, а continue - внутри?
И всё это лишь частные случаи delimited continuation...
Выше версии он есть, но эти версии не кто не юзает.
Лучше б goto завезли, чтоб можно было из вложенных друг в друга циклов легко выпрыгивать
не язык, а сплошная стыдоба