Неужели инженеры компании Canon или Nikon не придумали это за долгие годы разработок систем стабилизации, а специалисты Microsoft за раз взяли — и решили эту проблему.
Еще пример. Используя исключение в бизнес логике вы как-бы говорите — если происходит вот-это, то все прекратить и сделать это. Такая ситуация может привести к ошибке, если нужно что-то сделать перед началом обработки ошибки. То есть вы используете не совсем явный переход к обработчику ошибки.
Хотя бы производительность. Исключения принося некоторое удобство потребляют в несколько раз больше ресурсов. Исключение — нетипичная ситуация для нормального хода выполнения программы. Если условие еще как-то можно заоптимизировать, то с ислючением все сложнее.
Вот пример, сравнивающий скорость работы исключений с классами ошибок. pastebin.com/vxWNH1VD
Это не ошибки, а бизнес-логика. Исключение следует генерировать лишь тогда, когда дальнейшая нормальная работа приложения в конкретной ситуации невозможна.
Для вашего возраста не много ли всего вы попробовали? :-) Судя по профилю, win95 вышла, когда вам было 10 лет. Или скорее всего я слишком мало успел за это время…
Можно попробовать научиться делать все, что вы умеете быстрее. Представьте, приходите вы на работу, сделали за 2 часа все, а остальные 6 занимаетесь своими делами, которые тоже могут приносить деньги. При таком подходе вы приобретете ценный навык быстро работать, 2-х часовой рабочий день, 6 часов бесплатного офиса в день.
Такое экстремальное программирование в прямом смысле этого слова не должно быть нормальным рабочим процессом. Обычно новая срочная задача вечером в пятницу — признак кривого менеджерства и сигнал о необходимости искать новое место.
$(«table td»).live(«hover») — назначает столько обработчиков, сколько и ячеек
$(«table»).delegate(«td», «hover») — назначает один обработчик на таблицу и передает в this нужную ячейку.
pastebin.com/xkGdd81Q
Вот пример, сравнивающий скорость работы исключений с классами ошибок.
pastebin.com/vxWNH1VD
Интересно, как вы реализовали регулярные выражения с именованными параметрами.
$(«table»).delegate(«td», «hover») — назначает один обработчик на таблицу и передает в this нужную ячейку.