Довідковий матеріал

Обробка помилок

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

Стисле повідомлення про помилку перед ланцюжком вкладених карток, що розкривається до технічних деталей.

Під час формування тексту повідомлення про помилку використовується такий алгоритм:

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

    • для помилок компіляції модулів до короткого представлення включається текст, пов’язаний із місцем виникнення помилки (рядком у модулі);
    • для короткого представлення помилок часу виконання використовується текст без подробиць про місце виникнення помилки (рядок у модулі).
  • Коротке представлення помилки відображається в діалозі, що виводиться користувачеві. У цьому діалозі може бути кнопка Докладно..., якщо виконуються такі умови:

    • увімкнено режим налагоджування;
    • це помилка вбудованої мови;
    • у ланцюжку є більше одного виключення.
  • Докладне представлення помилки формується з описів усіх виключень у ланцюжку.

Якщо діалог помилки не містить кнопки Докладно..., а помилка є критичною (роботу програми неможливо продовжити), у цьому діалозі буде гіперпосилання Показати інформацію для технічної підтримки.

Після натискання кнопки Докладно... відкривається додаткове вікно з докладним представленням помилки та додатковою кнопкою Конфігуратор..., якщо в діалозі відображається помилка вбудованої мови.

Під час роботи тонкого клієнта або веб-клієнта в клієнт-серверному варіанті обробляються такі помилкові ситуації:

  • Якщо на початку роботи системи виявлено встановлене блокування з’єднань з інформаційною базою, з’являється повідомлення про помилку з можливістю повторити з’єднання.
  • У разі розбіжності версій сервера та клієнтської прикладної програми відображається повідомлення про помилку з можливістю виконати перезавантаження.
  • За відсутності прав на запуск тонкого клієнта поведінка залежить від використання ключа запуску -AppAutoCheckMode:

    • якщо команду було вказано під час запуску, автоматично виконується спроба запуску товстого клієнта;
    • якщо команду не було вказано під час запуску, відображається вікно з повідомленням про помилку без можливості перезапуску.
  • У разі неможливості з’єднання із сервером BAF (або веб-сервером) для запитів, які можна надіслати повторно, і для запитів, що виконуються до початку сеансу, відображається повідомлення про помилку з можливістю повторити запит або відмовитися від спроби. У разі скасування повтору запиту програма не завершує роботу. Якщо запит неможливо надіслати повторно, відображається вікно з повідомленням про помилку та можливістю виконати перезавантаження.
  • Якщо помилка сталася під час обробки запиту на сервері, відображається вікно з повідомленням про помилку та можливістю виконати перезавантаження.
  • У разі помилки роботи з сеансом, наприклад якщо сеанс було вилучено адміністратором, відображається вікно з повідомленням про помилку та надається можливість виконати перезавантаження.

У разі виникнення внутрішньої помилки платформи веб-клієнт формує помилку такого виду: Невідома помилка: <опис помилки>.

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

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

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

Увага!

Для збереження працездатності системи не слід перехоплювати помилки з кодом 400. Помилки з кодами 50x можна перехоплювати для відображення більш зрозумілого повідомлення про помилку.

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