PHP поймать не удалось включить - PullRequest
11 голосов
/ 05 ноября 2011

Я пытаюсь включить файл и поймать его, если файл не существует / не может быть открыт.Я бы подумал, что простой оператор try / catch сработал бы, но PHP, похоже, полностью игнорирует его и выдает ошибку.

Есть идеи?Я знаю, что есть и другие вопросы, подобные этому, в stackoverflow, я их видел, но ни на один из них, похоже, нет правильного рабочего ответа.

Ответы [ 2 ]

28 голосов
/ 05 ноября 2011

Вы можете проверить возвращаемое значение include, чтобы увидеть, провалилось оно или нет:

if((@include $filename) === false)
{
    // handle error
}

Обратите внимание, я включил оператор подавления ошибок (@), чтобы скрыть отображение стандартных сообщений об ошибках.

4 голосов
/ 05 ноября 2011

Поскольку include() возвращает false в случае сбоя, просто проверьте, возвращает ли оно значение true, а затем выполните что-то вроде die() или покажите ошибку.

if (!include('page.php'))
   die('Error.');
...