【问题标题】:Best practice for error handling in codeigniter / php appscodeigniter / php 应用程序中错误处理的最佳实践
【发布时间】:2010-04-24 17:15:48
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php codeigniter error-handling function


    【解决方案1】:

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

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

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

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

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

    此外,一些第三方代码会使用异常(例如 Facebook Connect 的 PHP Lib)。

    【讨论】:

    • 感谢 Natebot。我们将更多地研究异常,看看我们可以从使用它中学到什么。它似乎是为我们正在做的事情而设计的。还有其他好的选择吗?
    • 我的经验有限,主要是让模型在模型方法中的任何内容失败时抛出异常。 Controller 方法尝试/捕获模型方法调用——因为模型方法的失败通常意味着控制器需要做一些完全超出预期的事情(例如重定向到错误消息)。 catch 可以记录错误(或向我的监控服务发送电子邮件)。
    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多