Задать вопрос
@Venesuella
BlackJack и ...

Как правильно обрабатывать Exception?

Здравствуйте! Подскажите как правильно обрабатывать Exception? Приложение разделено на 3 слоя: DAL, BLL, Presentation, к примеру в одной из выборок данных в слое DAL выпал Exception, что дальше с ним делать?
1) Нужно ли его протаскивать до Presentation layer?
2) Нужно ли писать в log?
3) Нужно ли выводить пользователю ошибку?
4) Что делать с тем методом в котором выскочил Exception, если этот метод что то возвращает, нужно ли возвращать значение null?
Подскажите пожалуйста эффективные методы обработки таких ситуаций, вопросы набросал что первое пришло на ум, т.к ранее не сталкивался с такой проблемой
  • Вопрос задан
  • 219 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@VanKrock
Этот вопрос очень странный, тут все зависит от вас, если вы хотите показать пользователю ошибку, то вы ее показываете, если не хотите то не показываете. То же самое и с логами, если вам нужна запись об этой ошибке то вы ее записываете в лог, если не нужна то не записываете. Нужно понимать как пользователь будет работать с вашим приложением, что он будет делать в случае возникновения ошибок, к кому он будет обращаться например, кто будет разбираться с этой ошибкой, и какая информация понадобится этому человеку для того чтобы выявить и устранить проблему.

Просто подумайте, а что и кому будет нужно. Если пользователь создает заявку, а у вас на обращении вылетело исключение, то нужно ли ему показать, что при регистрации прошла ошибка? Наверное нужно. Нужен ли ему подробрая информация о подключении и весь стек трейс? Наверное нет. Нужна ли подробная информация службе поддержки вашего приложения? Наверное да. Нужен ли службе поддержки стек трейс если они к коду доступа не имеют? Наверное не особо. А вот разработчику не помешает и стек трейс.

Так что смотрите на свой бизнес-процесс решения проблем с вашим приложением.
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
Нет, пользователю нужно показать лишь страницу, типа, что-то пошло не так, сохранять лог, и отправлять уведомление об ошибке разработчикам( почта и тд ), Вывод сообщений исключения, полезен лишь во время разработки, на продакшне подробность ошибки даже черевата взломом. Лучше привинтить валидацию, и выводить именно ошибки валидации, это верно.
Ответ написан
Комментировать
Реально брошенные исключения влияют на производительность, имейте в виду, если она критична.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы