Как получить Уведомить приложение с ошибкой в ​​базе данных (например, StoredProcedure, view и т. Д.) - PullRequest
0 голосов
/ 14 ноября 2010

В интервью я задаю вопрос, что мы разрабатываем приложение WPF, которое вызывает некоторый StoredPeocedure.Если во время выполнения возникла ошибка в StoredProcedure или в базе данных произошла какая-либо ошибка, как мы теперь в приложении и изящно показываем это клиенту.

Означает, что ошибка в SQl на сервере, и приложение должно знать об этом, как показать это.

Я отвечаю, чтобы использовать оператор try catch, но интервьюер не принял этот ответ.Я в Google, но не смог получить ответ.

Может кто-нибудь сказать мне подходящий способ сделать это?

1 Ответ

1 голос
/ 14 ноября 2010

Ну, попробуйте / поймать само по себе на самом деле мало что делает, и было бы определенно плохой практикой представлять диалог пользовательского интерфейса со своего уровня DAL / DB / repo. Я бы:

  • в DAL перехватывает ожидаемое исключение SQL и генерирует документированное исключение, которое пользовательский интерфейс может ожидать
  • в слое пользовательского интерфейса , поймайте исключение, которое вы бросили, и представьте пользователю подходящий диалог

Конечно, ваш пользовательский интерфейс должен ожидать любого исключения в этом сценарии; просто это может поставить более дружелюбное лицо в ожидаемое (предсказуемое) исключение - и быть более осторожным в случае чего-то, чего не ожидал.

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

В общем, хотя: никогда не бойтесь спрашивать интервью, что они имели в виду; После этого вы сможете обсудить достоинства (а не) каждого подхода. Кроме того, никогда не предполагайте, что интервьюер знает все. У меня было бы абсолютно никаких сомнений, говорящих интервьюеру (хорошо, ум), что они ошибаются в техническом вопросе. Это может быть подлым, но интервьюер может на самом деле искать кого-то, кто не боится говорить, когда кто-то делает техническую ошибку, и поэтому вводит тонкую тарабарщину в технические дискуссии.

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