Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Как правильно формировать сообщения об ошибке для пользователя?

#исключения #обработка_ошибок


Здравствуйте, коллеги!
Поделитесь пожалуйста опытом, какими правилами вы пользуетесь когда формируете сообщение
об ошибке для пользователя при написании ПО.
К примеру пользователь пытается что то загрузить из сети и положить результат в БД.
Соответственно могут произойти ошибки как связанные с сетью, так и с БД. Т.е. я бы
сказал пользователю следующее (к примеру):


Не удалось загрузить список должностей: Нет доступа к сети Интернет
Не удалось загрузить список должностей: Client error 404 not found
Не    удалось загрузить список должностей: Server error 500
Не удалось    загрузить список должностей: Ошибка записи в БД


P.S можно ли выводить сообщение из пойманого exception? 

Спасибо за Ваши ответы!
    


Ответы

Ответ 1



Поставьте себя на место пользователя, который не знаком с программированием, Вам интересно читать "Client error 404 not found", "Server error 500"? Для такого пользователя эти 504 Gateway Timeout, как абракадабра. Его по сути должно волновать, когда эта проблема будет устранена и как продолжить работать с вашей программой. Так вот, предположим пропало соединение с базой данных, тогда пользователю надо вывести сообщение: "Операция сохранения данных завершилась неудачей в связи с техническими проблемами на нашей стороне. Попробуйте через несколько минут." Если у пользователя пропал интернет, тогда это немного другая ошибка и она должна показывать не только наличие того, что пропал интернет, но и краткую информацию, как эту проблему можно решить. Может быть его firewall заблокировал? "Мы заметили, что у Вас пропало соединение с интернетом. Работа в режиме Offline с нашей программой невозможна, проверьте соединение с интернетом. Если вы не наблюдаете проблем с открытием страниц в браузере, возможно, доступ к сети мог был заблокирован вашим антивирусным ПО для нашей программы и Вам требуется проверить правила" Также, можно внизу сделать вкладку "Системная информация" и туда сохранить информацию об ошибке, данные запроса и т.д. и написать пользователю: "Если данная проблема сохраняется в течении длительного времени, обратитесь в техническую поддержку с информацией из вкладки 'системная информация'"

Ответ 2



«Пишите приложение так, будто поддерживать его будет склонный к насилию психопат, знающий, где вы живёте» (с) не моя. Пользователи бывают разные по квалификации, в организациях с вашим сообщением об ошибке будет работать минимум два человека — собственно, пользователь и сотрудник техподдержки, поэтому надо, чтобы сообщение было полезно им обоим (да и вам самим на этапе отладки). Посмотрите, как организован журнал сообщений в Windows — там есть краткое описание ошибки в одну строчку, которое показывается в списке, и подробное с кучей информации, понятной разве что разработчику. И рекомендую почитать классическую статью Якоба Нильсена «Правила написания сообщений об ошибках» (Jakob Nielsen, «Error Message Guidelines»).

Ответ 3



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

Комментариев нет:

Отправить комментарий