Код статуса 5хх был бы уместен здесь. 503 или 500 кажутся разумными, в зависимости от того, как вы ожидали, так и неожиданно вы считаете эту конкретную ошибку.
404 означает, что пользователь запросил ресурс, который не существует. Разве они в этом случае? Некоторые вспомогательные серверные службы могут не существовать или работать с ошибками, но это не является проблемой пользователя. Коды состояния HTTP относятся к ресурсам HTTP, а не к вашей внутренней инфраструктуре. И пользователь запросил правильный ресурс.
При возврате любого кода состояния 4xx спросите себя:
Может ли пользователь что-то сделать, чтобы изменить свой запрос для устранения проблемы?
Если ответ отрицательный, то это не ошибка клиента, а ошибка сервера. Что ставит проблему на территории 5xx.
Кроме того, это выглядит как плохое использование исключений:
if (!file_exists("dbConn.php")) {
throw new Exception("File Not Found");
} else {
//...
}
Это в основном использование исключений для потока управления, для чего уже был if
. Вы уже определили в if
условии, что искомый файл недоступен. Внутри блока if
вы можете составить свой ответ и завершить выполнение скрипта.
Так что, потенциально, что-то вроде:
if (!file_exists("dbConn.php")) {
http_response_code(500);
die 'Unable to process the request.';
}
// No need for an "else" here, just continue as normal
Подобные вещи часто называют «охранной оговоркой» , В начале вашей общей работы вы проверяете свои предварительные условия и терпите неудачу при необходимости. Если все пункты охраны пройдут, код можно продолжить.