Битрикс. Код ответа 200 при недоступной базе. Кто решал подобную проблему?

Рейтинг: 1Ответов: 1Опубликовано: 02.08.2023

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

1С-Битрикс: Управление сайтом 19.0.700

Ответы

▲ 0

При всех ошибках с подключением к базе данных битрикс бросает исключение типа Bitrix\Main\DB\ConnectionException. Её можно ловить и обрабатывать.

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

Поэтому где-то в начале /local/php_interface/init.php добавляем следующие строки:

try {
    \Bitrix\Main\UserTable::getRow([]);
} catch (\Bitrix\Main\DB\ConnectionException $e) {
    ... а тут делаем нужную обработку ...
    die();
}

То есть пробуем прочитать любую строку из таблицы юзеров, а если возникает ошибка подключения, то обрабатываем её.