微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用PHP中的严格报告管理错误?

如何解决如何使用PHP中的严格报告管理错误?

| 我使用自定义错误处理程序,并在PHP中使用完整的错误报告来跟踪错误。这非常适合调试,并将我的所有错误记录在数据库中以供以后调查。 无论如何,此方法现在禁止使用“ 0”来忽略发生错误错误。现在,我遇到了尝试在系统上重命名目录的问题,因为它有时可能会引发错误(如果正在其中访问文件)。 我希望能够在我的代码中捕获此错误,以防止执行该函数的其余部分,但我也不希望该错误出现在我的错误日志记录数据库中(考虑到该错误是“托管”代码,则无需查看失败)。 有一个简单的解决方案吗?我尝试使用try / catch,但它仍然会引发错误

解决方法

您可以将所有错误/警告/通知转换为异常
function exceptions_error_handler($severity,$message,$filename,$lineno) {
  if (error_reporting() == 0) {
    return;
  }
  if (error_reporting() & $severity) {
    throw new ErrorException($message,$severity,$lineno);
  }
}
set_error_handler(\'exceptions_error_handler\');
我认为处理异常要比php本机错误更好。,@zerkms的解决方案可以正常工作,但是我的错误处理程序已经完成,因此为了扩展此功能以提供功能,我仅提供了以下内容:
if ( error_reporting() == 0 )
  return;
在我的处理程序开始时。这样,如果在函数上使用“ 0”,该错误仍会引发,但在处理程序启动时会被忽略(因此,未登录到数据库等),并且我仍将从函数中获得布尔结果,例如如
rename()
。 如果需要的话,这仍然使我能够对代码使用try / catch解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。