codeigniter/php应用程序中错误处理的最佳实践

codeigniter/php应用程序中错误处理的最佳实践,php,codeigniter,error-handling,function,Php,Codeigniter,Error Handling,Function,我们正在使用一个新的基于codeigniter的应用程序,该应用程序正向和反向交叉引用来自各种库、模型等的不同PHP函数 我们在服务器上运行PHP5,并试图找到一种好方法来管理由于使用我们的函数而产生的错误和状态报告。 在函数中使用return时,执行将结束,因此无法返回任何内容。对吧? 在实际函数执行结束时发送状态信息或错误代码的最佳做法是什么 我们是否应该考虑使用异常或任何其他方法? 我们是否应该考虑使用异常或任何其他方法 由于您致力于PHP5,我认为在自定义库中使用异常是一个好主意。使用

我们正在使用一个新的基于codeigniter的应用程序,该应用程序正向和反向交叉引用来自各种库、模型等的不同PHP函数

我们在服务器上运行PHP5,并试图找到一种好方法来管理由于使用我们的函数而产生的错误和状态报告。 在函数中使用
return
时,执行将结束,因此无法返回任何内容。对吧?

在实际函数执行结束时发送状态信息或错误代码的最佳做法是什么

我们是否应该考虑使用异常或任何其他方法?

我们是否应该考虑使用异常或任何其他方法

由于您致力于PHP5,我认为在自定义库中使用异常是一个好主意。使用Try/Catch和异常将提供对代码更好的控制,并可能提供更健壮的错误日志记录

扩展Exceptions类将允许您对您的模型和库可以抛出什么样的异常以及如何对它们做出反应进行细粒度的控制

我可以想象,如果一个模型提供了错误的输入,它会抛出一个dataInputException,如果它无法对数据进行操作,它会抛出一个dataOperationException(比如$this->db->insert()返回了一个失败)。处理每种异常的方式可能不同

在开发错误报告方面,Exceptions类方法将为您提供大量信息(如文件名和行号)


此外,一些第三方代码使用了异常(如Facebook Connect的PHP库)

谢谢Natebot。我们将更多地研究异常,看看我们可以从使用它中学到什么。它似乎是为我们所做的而设计的。还有其他好的选择吗?我的经验有限,大多数情况下,当模型方法中的任何东西失败时,模型都会抛出异常。控制器方法try/捕获模型方法调用——因为模型方法的失败通常意味着控制器需要做一些完全超出其预期的事情(例如重定向到错误消息)。catch可以记录错误(或向我的监控服务发送电子邮件)。