PHP поймать неудавшийся включить

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

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

Ответ 1

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

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

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

Ответ 2

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

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