2010-07-13 5 views
2

У меня есть приложение, которое предлагает свой бизнес-уровень через уровень обслуживания, разработанный с помощью WCF. Я думаю о том, что этот уровень сервиса предлагает такие операционные методы, как «Создать», «Обновить» и т. Д. Затем эти действия перенаправляют эти вызовы на бизнес-уровень. Возникает вопрос: предположим, что один из этих вызовов не принимает нулевое входное значение (например: Создать нулевой объект), где лучше всего выполнить проверку? Мой личный ответ находится в обоих местах (служба и бизнес), так как я могу гарантировать повторное использование бизнес-уровня без использования Уровня обслуживания и наоборот.Где бросить исключение в многоуровневой архитектуре?

Я прав?

Благодаря Marco

ответ

1

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

Это важно, потому что вы можете использовать эту библиотеку во многих местах для разных целей.

В вашем слое представления приложений, если вы используете библиотечный код и знаете о возможных исключениях, тогда поймайте их с помощью try/catch.

0

если вы не обрабатывать ошибку в DAL или BLL, то пузырьки, пока вы не поймать его. Исключения не могут быть «перезаписаны».

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

Общее правило выглядит следующим образом:

Handle Специфические ошибки и не использовать общий улов-все. Разрешить любые непредвиденные исключения пузыряться дальше по стеку.

Попробуйте запустить FxCop в своем проекте, чтобы увидеть, где вы нарушаете лучшие практики. http://www.gotdotnet.com/team/fxcop

Смежные вопросы