PHP捕获失败的包含

时间:2011-11-04 20:38:51

标签: php exception include try-catch

我正在尝试包含一个文件,并在文件不存在/无法打开时捕获它。我原本认为一个简单的try / catch语句会起作用,但PHP似乎完全忽略它,并且输出错误。

有什么想法吗?我知道在stackoverflow上还有其他类似的问题,我已经看过了,但是它们似乎没有一个正确的,有效的答案。

2 个答案:

答案 0 :(得分:28)

您可以检查包含的返回值,看它是否失败:

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

您会注意到我包含了错误抑制操作符(@)以隐藏显示的标准错误消息。

答案 1 :(得分:4)

由于include()在失败时返回false,只需检查它是否返回true然后执行die()之类的操作或显示错误。

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