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

要回复问题请先登录注册