#исключения #обработка_ошибок
Здравствуйте, коллеги! Поделитесь пожалуйста опытом, какими правилами вы пользуетесь когда формируете сообщение об ошибке для пользователя при написании ПО. К примеру пользователь пытается что то загрузить из сети и положить результат в БД. Соответственно могут произойти ошибки как связанные с сетью, так и с БД. Т.е. я бы сказал пользователю следующее (к примеру): Не удалось загрузить список должностей: Нет доступа к сети Интернет Не удалось загрузить список должностей: 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
Ошибки, связанные с загрузкой данных по сети, я разделяю на два типа: Ошибки на стороне клиента (проблемы с интернетом). Ошибки на стороне сервера (его неработоспособность). В первом случае я говорю пользователю, что возникли проблемы с интернетом и прошу его проверить его подключение к сети. Во втором случае я говорю, что у запрашиваемого сайта какие-то проблемы и прошу проверить его работоспособность в браузере. По поводу вывода сообщения из пойманного исключения: нет, я считаю, что его показывать не нужно. А вообще, вопрос довольно субъективный и сильно зависит от разрабатываемого приложения.
Комментариев нет:
Отправить комментарий