Рекомендации по отлову исключений в 3-х уровневом приложении - PullRequest
4 голосов
/ 09 сентября 2011

У меня WCF со следующими 3 уровнями:

  1. Услуги
  2. BLL
  3. DLL.

Может ли кто-нибудь помочь мне:

Какой из вышеперечисленных уровней является лучшим местом для обнаружения и регистрации исключения в следующем сценарии:

Сценарий 1:

Исключение происходит в DLL.

Сценарий: 2:

Исключение происходит по BLL.

Кроме того, должен ли я всегда переносить вызов в BLL из Сервиса при попытке и перехвате?

Ответы [ 2 ]

4 голосов
/ 09 сентября 2011

это зависит от вашей системы здесь, но я бы регистрировал исключения, вероятно, внутри BLL.И заметь "лог" не ловить!То есть - в конце улова будет повторный бросок!

Я вообще ничего не улавливаю в сервисе - это просто общение с клиентом - не нужно вкладывать в него какую-то логику ИМХО.

И, конечно же: поймайте ваши ожидаемые исключения, в которые они были брошены, и просто пропустите необъявленную передачу.

Например: Сценарий 1 - возможно, перехватите SqlExceptions, попробуйте handleих, а если не обернуть их в какое-то DAL-исключение и выбросить их.Сценарий 2 - может быть, поймать DAL-исключения из уровня 3 и посмотреть, сможете ли вы обработать их или обернуть их еще раз, ...

ИМХО, почти никогда не бывает хорошей идеей обрабатывать, регистрировать и отключать все видынеожиданные исключения (catch (Exception)) - после этого состояние приложения будет очень неопределенным.

3 голосов
/ 09 сентября 2011

Прочтите некоторые статьи на MSDN о блоке обработки исключений Microsoft

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

enter image description here

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