Лучший способ обработать исключение в многоуровневом - PullRequest
2 голосов
/ 19 октября 2011

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

Скажем, в моем решении у меня есть несколько проектов.

У меня есть (нижний) DataAccess, BizComponent, WCF, Proxy и Presentation (верхний).

Я пытаюсь «попробовать перехватить» в DataAccess и выбросить исключение в BizComponent, а в BizComponent я пытаюсь снова «попробовать перехватить»и зарегистрируйте ошибку и снова сгенерируйте исключение в WCF.

В слоях WCF и Proxy я делаю то же самое.На уровне презентации я показываю пришедшее пользовательское сообщение для конечного пользователя.

Мой старший сказал мне, что мне нужно только начать делать "try catch" в WCF и верхних слоях.И мне не нужно делать это в DataAccess и BizComponent, потому что он будет перехвачен в WCF.

Должен ли я попытаться перехватить исключение в DataAccess, BizComponent и выбросить исключение, или я должен просто попытаться перехватить только в WCFи начинает бросать в верхние слои?

Какой из них лучше практиковать?

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

1 Ответ

2 голосов
/ 19 октября 2011

Как правило, обрабатывать (перехватывать) исключения можно только в том случае, если вы собираетесь с ними что-то делать.

Например, если вы можете перехватить исключение базы данных на уровне данных, если хотите предоставить дополнительныеинформация в «верхних» слоях.

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

Если вы повторно используете код в нескольких приложениях и нуждаетесь в разных хранилищах журналов, это можно сделать с помощью внедрения зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...