如何解决如何使用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 举报,一经查实,本站将立刻删除。