«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Клиентоориентированная обработка ошибок

Клиентоориентированная обработка ошибок

Опубликовано 9 ноября 2024 г.
Просматривать:395

Client-Centered Error Handling

Понимание и обработка ошибок

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

Типы ошибок в среде веб-клиента

Сетевые ошибки

  • Проблемы подключения: проблемы с установлением соединения с сервером.
  • Тайм-ауты: запросы требуют слишком много времени для получения ответа.
  • Ошибки DNS: проблемы с разрешением доменного имени.
  • Ошибки HTTP: такие ошибки, как «404 не найден», «500 внутренняя ошибка сервера» и т. д.

Ошибки API сервера

  • Недопустимые ответы: неожиданные или неверные данные с сервера.
  • Ошибки аутентификации: проблемы с аутентификацией или авторизацией пользователя.
  • Ограничение скорости: ограничения из-за превышения лимитов использования API.

Ошибки среды браузера пользователя

  • Совместимость браузера: проблемы, возникающие из-за различий в том, как браузеры обрабатывают определенные функции.
  • Ошибки JavaScript: ошибки в коде JavaScript на стороне клиента.
  • Ошибки загрузки ресурсов: проблемы с загрузкой ресурсов, таких как изображения, скрипты или таблицы стилей.

Другие ошибки

  • Ошибки на стороне клиента: ошибки, связанные с устройством или операционной системой пользователя.
  • Ошибки пользовательского интерфейса/UX: проблемы с пользовательским интерфейсом или взаимодействием с пользователем, например неработающие ссылки или неправильный макет.

Могут возникнуть различные типы ошибок. Однако эти ошибки обычно можно разделить на две категории:

  1. Ожидаемые ошибки: ошибки, возникновение и характер которых известны заранее.
  2. Неожиданные ошибки: ошибки, возникновение и природа которых заранее неизвестны.

Давайте разложим ошибки, которые мы обсудили, на эти классификации.

Можно ли предвидеть ошибку или нет?

Ожидаемые ошибки

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

Например, такие ошибки, как несанкционированный доступ (401) или запрещенный доступ (403), можно обрабатывать соответствующим образом в зависимости от ситуации. Также принято определять более подробные коды ошибок для каждого кода состояния, чтобы управлять логикой приложения в ответ на ошибки. Они называются ожидаемыми ошибками.

Неожиданные ошибки

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

Пользователь и ошибка

Ошибки также можно классифицировать на основе взаимодействия с пользователем, а не только на основе среды. Один из способов классифицировать ошибки — рассмотреть, может ли пользователь что-то сделать с ошибкой. Вот критерии этой классификации:

  1. Ошибки, которые пользователь может понять и устранить (Ошибки, которые помогают пользователю продолжать использовать приложение).
  2. Ошибки, которые пользователь не может устранить (ошибки, которые не оказывают никакой помощи пользователю).

Устранимые ошибки

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

Если у пользователя нет разрешения на доступ к определенному экрану, вы можете предложить ему запросить доступ у администратора.

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

Неразрешимые ошибки

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

Оба случая, 1 и 2, предполагают предоставление сообщения. Разница в том, что случай 1 включает в себя какое-то действие или руководство, побуждающее пользователя предпринять действия.

Может ли пользователь устранить возникшую ошибку самостоятельно или нет?

Как обрабатывать ошибки

Итак, как нам следует обрабатывать возникающие ошибки? Какой интерфейс приложение должно предоставить пользователю в случае возникновения ошибки? Давайте рассмотрим, как устранять различные типы ошибок в зависимости от их характеристик.

Непредсказуемые, но решаемые ошибки

Типичным примером является сетевая ошибка. Это может произойти в любое время в зависимости от сетевой среды пользователя. Самое простое решение — сообщить пользователю, что это «временная ошибка», и дать рекомендации повторить предыдущее действие.

Диапазон ошибок

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

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

Непредсказуемые и неразрешимые ошибки

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

Мониторинг

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

Предсказуемые, но неразрешимые ошибки

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

Ошибки, связанные с безопасностью

Эти ошибки возникают при злонамеренном намерении использовать приложение. Обычно они возникают из-за уязвимостей безопасности, и их следует предотвращать во время разработки. Крайне важно решать основные проблемы безопасности, такие как CORS и XSS, и сотрудничать с командой безопасности для создания безопасного приложения.

Предсказуемые и решаемые ошибки

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

  • 401 Несанкционированная ошибка: требуется вход в систему.
  • Ошибка 404 Not Found: доступ к неправильной странице.
  • Другие ошибки бизнес-логики: определяются логикой приложения.

В этих случаях предоставьте соответствующие инструкции в приложении или создайте отдельные страницы для направления пользователей.

Важность руководства

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

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

Заключение

Client-Centered Error Handling

Мы изучили обработку ошибок. Давайте эффективно управлять ошибками, используя различные инструменты и технологии, такие как инструменты мониторинга ошибок и ErrorBoundary React, который может обнаруживать ошибки в ограниченном объеме.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/jaeyeophan/client-centered-user-Exception-handling-23a1?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3