|
Тема |
Re: е не е ли бавно с Регулар Експрешън ? [re: Дeшeв] |
|
Автор |
шeф нa Coди Дeвня (full optional) |
|
Публикувано | 22.04.04 22:37 |
|
|
Съгласих се че ползата от exceptions е далеч по-голяма от загубата на performance. Ако трябва да бъдем педантични обаче, независимо дали се хвърля ексепшън или не, performance-a пак е по кофти (макар и незабележимо) защото за всеки try, catch и finally се генерира код inline в метода който се извиква винаги и добавя по известно количество байтове към всеки метод.
Не отдавна участвах в проект в който нямаше ексепшънс, функциите връщаха код на грешка, а информацията за грешката се пазеше в глобална error collection. Този подход доста ми допадна тъй като нямаш try и хиляди catch-ове след него, няма вероятност да хвърлиш ексепшън някъде а да го хванеш съвсем на друго място където съвсем не го очакваш, винаги имаш достъп до всички грешки които са се случили, и т.н. Всеки метод преди да върне грешка си прави нов обект error, описва детайлно грешката и го добавя в колекцията. Така the caller трябва само да pop-не последния error. Освен това можеш да сложиш приоритет на грешките си, примерно: warning, error, bad error, critical error, и динамично да конфигурираш при какъв тип грешка да спираш приложението. Примерно, ако екзитваш само при критикал ерор, в момента в който се случва този ерор можеш да видиш всички останали warning и errors в колекцията, и така да разбереш как точно си стигнал до този критикал ерор.
Bottom line: Използвай техники които са най-добри за приложението което разработваш! А не техники които някой е набелязал като генерално най-добри за всички приложения.
XM TurboCT .. where comfort meets power
|
| |
|
|
|