Справочный материал

Обработка ошибок

Описан алгоритм формирования краткого и подробного представления ошибок в BAS, условия показа соответствующих кнопок, поведение клиентов и коды ошибок веб-подключения.

Краткое сообщение об ошибке перед цепочкой вложенных карточек, раскрывающейся до технических деталей.

При формировании текста сообщения об ошибке используется следующий алгоритм:

  • Из цепочки исключений извлекается самое вложенное исключение, то есть самое первое исключение.
  • Текст описания самого первого исключения используется для краткого представления ошибки:

    • для ошибок компиляции модулей в краткое представление включается текст, связанный с местом возникновения ошибки (строкой в модуле);
    • для краткого представления ошибок времени выполнения используется текст без подробностей о месте возникновения ошибки (строке в модуле).
  • Краткое представление ошибки отображается в диалоге, выводимом пользователю. В этом диалоге может быть кнопка Подробно..., если выполняются следующие условия:

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

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

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

При работе тонкого клиента или веб-клиента в клиент-серверном варианте обрабатываются следующие ошибочные ситуации:

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

    • если команда была указана при запуске, автоматически выполняется попытка запуска толстого клиента;
    • если команда не была указана при запуске, отображается окно с сообщением об ошибке без возможности перезапуска.
  • При невозможности соединения с сервером BAF (или веб-сервером) для запросов, которые можно отправить повторно, и для запросов, выполняемых до начала сеанса, отображается сообщение об ошибке с возможностью повторить запрос или отказаться от попытки. При отмене повтора запроса программа не завершает работу. Если запрос невозможно отправить повторно, отображается окно с сообщением об ошибке и возможностью выполнить перезагрузку.
  • Если ошибка произошла при обработке запроса на сервере, отображается окно с сообщением об ошибке и возможностью выполнить перезагрузку.
  • При ошибке работы с сеансом, например если сеанс был удален администратором, отображается окно с сообщением об ошибке и предоставляется возможность выполнить перезагрузку.

При возникновении внутренней ошибки платформы веб-клиент формирует ошибку следующего вида: Неизвестная ошибка: <описание ошибки>.

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

  • 400 Bad Request – описывает ошибки прикладного решения, не имеющие критических последствий для работы клиентского прикладного приложения, в частности все исключения времени выполнения. Нельзя перехватывать для отображения пользователю.
  • 500 Internal Server Error – описывает ошибки прикладного решения, имеющие критические последствия для клиентского прикладного приложения, например:

    • невосстанавливаемые исключения базы данных;
    • исключения, связанные с удалением сеанса или отсутствием данных сеанса.
  • 502 Bad gateway – описывает ошибки кластера серверов или регламентных операций, имеющие критические последствия для прикладного приложения, например если невозможно установить соединение с сервером BAF.
  • 503 Service Unavailable – описывает ошибки кластера серверов или регламентных операций, имеющие критические последствия для клиентского прикладного приложения, например если невозможно установить соединение с сервером баз данных.

Внимание!

Для сохранения работоспособности системы не следует перехватывать ошибки с кодом 400. Ошибки с кодами 50x можно перехватывать для отображения более понятного сообщения об ошибке.

Записаться по телефону