Текст сообщения об ошибке - лучшие практики

В дополнение к другим ответам структура может (но обычно не имеет) иметь виртуальные функции, и в этом случае размер структуры также будет содержать пространство для vtbl.

12
задан NotDan 22 September 2008 в 19:46
поделиться

12 ответов

С точки зрения формулировки Ваших сообщений об ошибках я рекомендую обратиться к следующим руководствам по стилю для Приложений Windows:

6
ответ дан 2 December 2019 в 07:23
поделиться

Окончательная лучшая практика должна препятствовать тому, чтобы пользователь вызвал ошибки во-первых.

Не говорите пользователям ничего, о чем они не заботятся; код ошибки 5064 не значит вещь ни для кого. Не говорите им, что они сделали что-то не так; запретите его во-первых. Не обвиняйте их, особенно не для ошибок Ваше сделанное программное обеспечение. Прежде всего, когда существует проблема, скажите им, как зафиксировать ее так, они могут идти дальше и получить некоторую сделанную работу.

5
ответ дан 2 December 2019 в 07:23
поделиться

Хорошее сообщение об ошибке должно:

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

Одна вещь, которую я начал делать, состоит в том, чтобы генерировать уникальное число, которое я отображаю в сообщении об ошибке и пишу в файл журнала, таким образом, я могу найти ошибку в журнале, когда пользователь отправляет мне снимок экрана или звонит и говорит, "Я получил ошибку. Это говорит, что мой ссылочный номер 0988-7634"

2
ответ дан 2 December 2019 в 07:23
поделиться

Из соображений безопасности не предоставляйте внутреннюю информацию о системе, в которой не нуждается пользователь.
Тривиальный пример: при отказе войти в систему, не говорите пользователю, если имя пользователя является неправильным, или пароль является неправильным; это только поможет взломщику к грубой силе система. Вместо этого просто скажите, что "Комбинация Имени пользователя/Пароля недопустима" или что-то как этот.

2
ответ дан 2 December 2019 в 07:23
поделиться

Попытайтесь выяснить способ записать Ваше программное обеспечение, таким образом, оно исправляет проблему для них.

1
ответ дан 2 December 2019 в 07:23
поделиться

Всегда включайте предложения для Исправления ошибки.

1
ответ дан 2 December 2019 в 07:23
поделиться

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

Имя файла, которое Вы ввели, не могло быть найдено: "somefile.txt"

Это помогает показать любой пробел/возвраты каретки, который, возможно, крался в и значительно уменьшает поиск и устранение неисправностей и разочарование.

1
ответ дан 2 December 2019 в 07:23
поделиться
  1. Избегайте идентичных сообщений об ошибках, прибывающих из различных мест; параметризуйте с file:line, если это возможно, или используйте другой контекст, который позволяет Вам, разработчику, однозначно определите, где ошибка произошла.
  2. Разработайте механизм для разрешения легкой локализации, особенно если это - коммерческий продукт.
  3. Если сообщения об ошибках видимы пользователем, заставьте их завершиться, значимые предложения, которые не принимают глубоких знаний кода; помните, Вы всегда слишком близки к проблеме - пользователь не. Если возможно, дайте пользовательские указания на то, как продолжить двигаться, кто связаться и т.д.
  4. Каждая ошибка должна иметь сообщение если возможный; в противном случае затем попытайтесь удостовериться, что вся ошибка - раскручивается, пути в конечном счете достигают сообщения об ошибке, которое проливает свет на то, что произошло.

    Я уверен, что здесь будут другие хорошие ответы...
1
ответ дан 2 December 2019 в 07:23
поделиться

Более короткие сообщения могут на самом деле быть прочитаны.

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

Лучшее сообщение об исключении является тем, которое Вы никогда не должны отображать.

1
ответ дан 2 December 2019 в 07:23
поделиться

Обработка ошибок всегда лучше, чем сообщение об ошибке, но так как Вы модифицируете сообщения об ошибках и не обязательно, код здесь является несколькими предложениями:

Пользователи хотят решения, не проблемы. Помогите им знать, что сделать после ошибки, даже если сообщение так же просто как, "Закрыть текущее окно и повторяют Ваше действие".

Я - также большой поклонник централизованного журналирования ошибок. Удостоверьтесь, что журнал является и человеком и поддающимся сканированию компьютером. Пользователи не всегда сообщают, какие проблемы они имеют, особенно если они могут 'работаться вокруг', таким образом, журнал может помочь Вам знать то, в чем вещи нуждаются зафиксированный.

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

1
ответ дан 2 December 2019 в 07:23
поделиться

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

0
ответ дан 2 December 2019 в 07:23
поделиться

Я был бы второй не сообщение пользователю бесполезная тайная информация как числовые коды ошибок. Я развил бы это однако путем высказывания для определенного входа той информации для поиска и устранения неисправностей более технически опытными людьми.

0
ответ дан 2 December 2019 в 07:23
поделиться
Другие вопросы по тегам:

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