Здравствуйте, dak_dak, Вы писали:
_>Какова политика разработчиков в плане обработки исключений?
_>Каковы рекомендации к использованию?
По последней версии политика такая. Перехватываются только исключения, возникающие в результате обращения к методам провайдера данных. Все они передаются в виртуальный метод OnOperationException, где заворачиваются в BLToolkit.Data.DataException и выбрасываются дальше. Это делается только лишь с одной целью — унифицировать обработку исключений от разных провайдеров данных. Все остальные исключения проходят как есть. Т.е. если во время вызова метода ExecuteObject произошло исключение в вызове метода IDbCommand.ExecuteReader, то оно будет завёрнуто в DataException. Если исключение возникло после, во время маппинга данных в объект, то вызывающая программа получит исключение как есть.
Метода OnOperationException виртуальный и имеет следующий вид:
protected virtual void OnOperationException(OperationType op, Exception ex)
{
throw new DataException(ex);
}
Т.е. перекрыв его можно либо заменить тип исключения на свой, либо вообще оставить его без изменений.