Рекомендации по ошибкам BLL

Как лучше всего возвращать ошибку бизнес-правила в BLL? Должен ли я просто создавать исключения и перехватывать их на уровне представления, должен ли я возвращать какой-то объект, который содержит любую информацию о типе исключения?


person januszstabik    schedule 01.06.2009    source источник


Ответы (1)


Слово «возвращение» здесь сложное.

Основным достоинством многоуровневого дизайна является ортогональность. Вы должны иметь возможность вызывать классы в своем BLL из совершенно другого пользовательского интерфейса, чем тот, который вы используете в настоящее время, и обрабатывать ведение журнала совершенно по-другому.

Если исключение можно обработать без вмешательства или уведомления пользователя, обычно это следует делать в BLL. Если исключение должно быть доведено до сведения пользователя или зарегистрировано, пусть оно всплывает в пользовательском интерфейсе, который может реализовать уведомление и ведение журнала, не встраивая такие вещи в BLL.

person Yes - that Jake.    schedule 01.06.2009
comment
Также рекомендуется обернуть несколько исключений (InvalidCastException, SqlException и т. д.) в одиночные типы исключений BLL (MyDatabaseException), чтобы людям, использующим библиотеку, не приходилось перехватывать пятнадцать различных типов исключений при каждом вызове. - person ; 01.06.2009