如果以下代码返回致命错误,我会在页面上收到一条消息,我不希望用户看到。我想隐藏致命错误消息并将用户重定向到另一个页面:
$jinput = JFactory::getApplication()->input;
要隐藏错误消息,我刚刚添加:
error_reporting(E_NONE);
但是我如何抓住并重定向这样的致命错误?
答案 0 :(得分:3)
与许多其他PHP用户一样,您将error_reporting
选项与display errors
混淆。你需要后者。
ini_set('display_errors', 0);
是你真正需要的。虽然错误报告必须仍然始终为E_ALL
答案 1 :(得分:1)
基本上,你不能“捕获”致命错误,因为它们会停止程序执行。但是有一种方法可以处理它们。注册您自己的关机处理程序并检查上一个错误是否致命。
<?php
function shutdownHandler()
{
$error = error_get_last();
if ($error['type'] == E_ERROR) {
your code goes here;
}
}
register_shutdown_function('shutdownHandler');