Поймать Sql исключения в Entity Framework4? Какова лучшая практика? - PullRequest
4 голосов
/ 01 декабря 2010

Какие методы вы используете в своем уровне данных для отлова исключений sql?Кто-нибудь написал обработчик исключений Generic Sql, где они отлавливают наиболее распространенные ошибки?

как вы это делаете, какие-нибудь примеры?

Спасибо

1 Ответ

1 голос
/ 23 января 2011

Обработка непредвиденных исключений только базовым уровнем

Исключения из вашего уровня данных (в данном случае Entity Framework) должны обрабатываться только бизнес-уровнем.Бизнес-уровень может затем вызвать (при необходимости) более высокоуровневое исключение для вашего уровня представления (UI).

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

Никогда не глотайте исключения, используя:

try {} catch (Exception) { // who cares }

Поймайте ожидаемые исключения как можно раньше

Всегда старайтесь обрабатывать ожидаемые исключения (например, FileNotFoundException) как можно скорее.Если вы можете справиться с этим, обращайтесь с этим прямо там.Если нет, то перебросьте Пользовательское исключение и обработайте его в нижележащем слое.

Не очищайте трассировку стека при повторном генерировании исключения

Поймать и перебросить неявно (см.)

try {} catch (Exception) { throw; }

и не явно

try {} catch (Exception ex) { throw ex; }

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