2010-04-24 97 views
4

我们正在开发一种新的基于代码的应用程序,它们从各种库,模型等等向前和向后交叉引用不同的PHP函数。codeigniter/php应用程序中错误处理的最佳做法

我们在服务器上运行PHP5,我们试图找到一种好方法来管理因使用我们的函数而产生的错误和状态报告。 在函数中使用return时,执行结束,因此不会再发送任何更多内容。对?

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

我们应该看看使用异常还是其他方法? http://us.php.net/manual/en/language.exceptions.php

回答

5

我们应该看看使用异常还是其他方法吗?

由于您致力于PHP5,我认为在自定义库中使用异常是一个好主意。 Try/Catch和Exceptions的使用可以更好地控制代码以及可能更强大的错误日志记录。

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

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

在开发错误报告方面,Exceptions类方法将为您提供大量信息(如文件名和行号)。另外,一些第三方代码使用例外(例如Facebook Connect的PHP Lib)。

+0

谢谢Natebot。我们将更多地考虑异常,并了解我们可以从中学到什么。这似乎是为了我们正在做的。还有其他不错的选择吗? – Industrial 2010-04-27 07:08:09

+0

我的经验有限,当模型方法中的任何内容失败时,大多数模型会抛出异常。 Controller方法尝试/捕获模型方法调用 - 因为模型方法的失败通常意味着控制器需要在所期望的范围外完成某些操作(例如重定向到错误消息)。 catch可以记录错误(或发送电子邮件给我的监测服务)。 – Natebot 2010-06-11 22:09:14

相关问题