Рекомендации по обработке ошибок базы данныхPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Рекомендации по обработке ошибок базы данных

Сообщение Anonymous »

Эта проблема возникла, когда я начал проводить модульное тестирование написанного мной веб-сайта. Буду ли я издеваться над базой данных или запускать экземпляр Docker для использования, это вопрос на будущее, но что меня действительно заинтересовало, так это то, как обрабатывать ошибки в PHP из-за неудачной попытки создать экземпляр объекта.
В конструкторе класса базы данных у меня есть следующий код:

Код: Выделить всё

        $tempConn = sqlsrv_connect($_ENV['MS_DB_SERVER_NAME'], $connectionOptions);
if ($tempConn === false) {
die(formatErrors(sqlsrv_errors()));
}
Однако, если при модульном тестировании мне нужно проверить, что произойдет, если база данных не будет подключена, я хочу как-то с этим справиться. Однако я не могу этого сделать из-за функции die. Функция выхода делает то же самое: мой код, включая набор тестов, просто перестает выполняться.
Я все еще изучаю PHP, но теперь понятно, почему вся программа останавливается.
Как я могу сделать это лучше, когда дело доходит до реального производственного кода? Должен ли я добавить сюда ошибку?
Сможет ли index.php или любые файлы, вызывающие конструктор базы данных, обработать ошибку? Если да, то как? Не удалось подключиться к базе данных, так следует ли завершить работу или умереть? В этом случае тестирование вернет меня к тому, что у меня было раньше — пакет остановится. Должен ли я вместо этого сделать перенаправление? Для перенаправления требуется выход, так что это может испортить пакет, верно?
Я очень не понимаю, как тестировать и устранять ошибки.
Спасибо, я с радостью отвечу на любые необходимые разъяснения.

Подробнее здесь: https://stackoverflow.com/questions/787 ... r-handling
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»