来源: 本站, 官方版本: (PHP)JTBC5.0
在JTBC5.0中默认的PHP代码报错界面是经过格式化处理的。在官方帮助手册中有指出:
在JTBC5中,未处理的异常最终由Jtbc\Exception\Handler类接管,并输出500错误码。
见:https://help.jtbc.cn/php/5.0/#exception/report.xml
那么,如何关闭报错呢,这里我们通过测试来学习一下方法。
首页我们使用PHP大法,原版报错关闭。
找到JTBC5.0启动文件:\Bootstrap\jtbc.php
原错误配置:
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
修改成
error_reporting(0);
保存,然后我们关闭网站数据库,来看一下报错。
是的,你没看错,报错依然存在。
那是什么原因造成屏蔽错误提示后,依然会有报错显示呢,这里就回到上面提到的帮助手册里的内容:
在JTBC5中,未处理的异常最终由Jtbc\Exception\Handler类接管,并输出500错误码。
原来在JTBC5中,屏蔽错误提示代码后,在Handler类中依然会重新进行错误的输出。
到此,我们就找到了原因,解决方法也很简单。有两种方法:
第一种,直接在\Bootstrap\jtbc.php中屏蔽相关代码
//set_exception_handler(['Jtbc\Exception\Handler', 'output']);
这样结合error_reporting(0); 就解决了错误的输出。
第二种,在Handler类文件头部添加error_reporting(0);即文件\Jtbc\Exception\Handler.php
这样结合\Bootstrap\jtbc.php文件中的error_reporting(0); 就解决了错误的输出。
最终,我们发现,在JTBC5中,未处理的异常最终由Jtbc\Exception\Handler类接管,并输出500错误码。
要屏蔽错误代码输出,除了设置PHP错误输出,还要处理Handler类对错误代码的输出。
技术支持QQ:925474725