【发布时间】:2011-07-28 03:49:21
【问题描述】:
这是一个简单的问题,谷歌搜索一小时似乎无法解决。如何在 PHP 中捕获失败的包含?对于以下代码:
try {
include_once 'mythical_file';
} catch (Exception $e) {
exit('Fatal');
}
echo '?';
由于mythical_file 不存在,我得到输出'?'。我知道 PHP 无法捕获所需的失败,因为它会触发警告错误,但是在这里呢?捕获失败的包含的最佳方法是什么?例如,以下工作:
(include_once 'unicorn') or exit('!');
但它不会触发异常,因此我无法检索文件、行和堆栈上下文。
【问题讨论】:
-
您可能希望结合使用register_shutdown_function() 查看error_get_last()。应该能够检索文件、行等。