Как лучше всего возвращать ошибку бизнес-правила в BLL? Должен ли я просто создавать исключения и перехватывать их на уровне представления, должен ли я возвращать какой-то объект, который содержит любую информацию о типе исключения?
Рекомендации по ошибкам BLL
Ответы (1)
Слово «возвращение» здесь сложное.
Основным достоинством многоуровневого дизайна является ортогональность. Вы должны иметь возможность вызывать классы в своем BLL из совершенно другого пользовательского интерфейса, чем тот, который вы используете в настоящее время, и обрабатывать ведение журнала совершенно по-другому.
Если исключение можно обработать без вмешательства или уведомления пользователя, обычно это следует делать в BLL. Если исключение должно быть доведено до сведения пользователя или зарегистрировано, пусть оно всплывает в пользовательском интерфейсе, который может реализовать уведомление и ведение журнала, не встраивая такие вещи в BLL.
person
Yes - that Jake.
schedule
01.06.2009
Также рекомендуется обернуть несколько исключений (InvalidCastException, SqlException и т. д.) в одиночные типы исключений BLL (MyDatabaseException), чтобы людям, использующим библиотеку, не приходилось перехватывать пятнадцать различных типов исключений при каждом вызове.
- person ; 01.06.2009