iceman
> исключения не для перехвата ошибки, а для создания ЛОГИКИ программы с учетом ошибки
Получается логика программы раскидана в куче разных мест. В одном месте мы выцепляем данные и генерим форму, а в другом месте далеко-далеко мы подставляем дефолтные данные, если выцепить обычные не получилось?
т.е. программист который программил QuickForm подразумевал, что я вместо него сгенерирую часть программы? Нет. Вся логика находится внутри пакета QuickForm - и всё.
> это явная ошибка программиста
Я для простоты понимания так пишу. Естественно, реальная программа сложнее и в неё будет addElement($elementType). Если уш так интересно, то $elementType - берётся из БД, ведь админ сам может создавать сущности (как в нормальной ЦМС), а типы элементов зависят от редакции ЦМС и подключенных модулей. Таким образом админ может создать, например раздел "новости" и сказать, что одно из полей там является datePicker-ом, а потом отключить модуль "Расширенные элементы форм" и получить багу при добавлении/редактировании новости.
-~{}~ 09.06.10 13:20:
newARTix
К сожалению, баги бывают всегда. Баги есть даже во FreeBSD, я уж не говорю про макОС, Убунту и тем более виндовс

И программист о них должен узнать самым первым и исправить. Для этого вызывается НОТИС/ВАРНИНГ, а myErrorHandler отсылает мне мыло.
Кроме того, нотисы могут возникать не только по вине кривой программы. Например, в своих довольно сильно нагруженных проектах я самый первый узнавал о том что:
1. Упал MySQL,
2. Закончилось место на диске,
3. Скрипту не хватает оперативы.
Тут же звонил сис.админу и все баги устранялись в течении 15 минут. Заказчик, даже не узнавал о сбое так же как большинство постоянных посетителей.