среда, 4 июня 2008 г.

Ошибки важнее.

Кто обращает внимание на типы ошибок при проектировании ? Только честно ?
Лично я не обращал на них особого внимания. Перехват, обработка и запись в логи - это да, это всегда делал, но никогда почти не задумывался о том что туда пишется. До недавних пор.

А все началось с того, что у меня генерились ошибки в методах сервиса. Ну и что, скажете Вы.

А то что при падении любой необработанной ошибки вызывается FaultException и валится проксик в состояние Fault. И поднять его уже нереально - только пересоздавать и переоткрывать что просто нереально долго и жрет ненужные ресурсы.

К счастью решение все же нашлось. Проксики не падают в случае, если Вы пропишете контракт ошибок для сервиса. Александр Межов в своей статье как раз описывает как обрабатывать ошибки сервисов (интересны кстати еще и калбэки ошибок).

При чем обрабатывать ошибки стало значительно удобнее - всегда знаешь когда свалилась прикладная логика, когда свалился скажем слой работы с данными, когда упал канал и т.д. Можно отследить практически любые ошибки на клиенте.


Комментариев нет: