我正在写一个脚本在PHP5中,需要某些文件的代码。当一个文件是不可用的包含,第一个警告,然后一个致命的错误抛出。我想打印自己的错误消息,当它是不可能包括代码。是否有可能执行最后一个命令,如果requeire不工作?
require('fileERROR.php5') or die("Unable to load configuration file.");
使用error_reporting(0)
抑制所有错误消息只会出现白色,而不使用error_reporting会出现PHP错误,我不想显示这些错误。
7条答案
按热度按时间cxfofazt1#
您可以通过将
set_error_handler
与ErrorException
结合使用来实现此目的。ErrorException
页面中的示例为:将错误作为异常处理后,您可以执行以下操作:
wfsdck302#
我只使用'file_exists()':
njthzxwz3#
更好的方法是先在路径上使用realpath。如果文件不存在,
realpath
将返回false
。您甚至可以在应用的namespace中创建自己的require函数,该函数封装PHP的require函数
现在,您可以在文件中的任何位置使用它
n6lpvg4x4#
你需要使用include()。当Require()用于不存在的文件时,会产生致命错误并退出脚本,所以你的die()不会发生。Include()只抛出警告,然后脚本继续。
ghhkc1vu5#
我建议您查看文档中关于set_error_handler()函数的最新注解。
它建议使用以下方法(并提供示例)捕获致命错误:
我还没有尝试过这个建议,但这可能会在其他致命错误场景中使用。
xriantvc6#
我使用的一个简单方法是
oxf4rvwz7#
从PHP 7.0开始,您可以捕获
require()
抛出的Throwable异常。将输出如下内容:
捕获错误=〉无法打开所需的“/path/not-found/or-not-available.php”[...]