gpt4 book ai didi

php - 如何在CodeIgniter中进行正确的错误处理?

转载 作者:行者123 更新时间:2023-12-03 08:00:51 25 4
gpt4 key购买 nike

我正在使用PHP的Codeigniter来构建应用程序,有时我感到自己被错误处理淹没了。我在任何可能出现故障的地方添加“故障保险”。这里有些例子:

在模型中:

  • 如果未提供所有模型方法参数,则返回false
  • 对于每个mysql查询,如果查询失败,则返回假
  • 根据情况,如果查询的行数小于1(必须大于0),则返回假

  • 在 Controller 中:
  • 如果 Controller 方法缺少必需的参数,则返回假
  • 如果被调用的模型返回false,则使用错误Flash消息重定向或显示错误 View

  • 我想知道的是,我是否过分了?我觉得可能没有必要测试每个mysql查询,但是再说一次,如果其中一个确实由于某种原因中断了,那么脚本的其余部分将失败或给用户带来麻烦。

    最后,在错误处理的上述所有阶段中,将错误记录到文件中哪个位置合适?

    最佳答案

    如果您在一个函数中有这么多的返回值,则您的代码结构不良。并且,如果您正在运行原始SQL查询,除非您正在访问元数据,否则最好将其移交给模型(CI具备的功能)。

    对于您的方法,请考虑类型提示。内容写为:

     function FunctionNameHere($user, $id, $test) {
    }

    考虑传递 User对象可能会更好,这可以让您执行以下操作:
     function FunctionNameHere(User $user, $test) {
    }

    这将为您执行所有“不正确的参数集”验证,并且会引发错误。

    对于SQL查询,请考虑使用模型,这将允许您再次检索对象。没有东西吗 NULL被返回。问题解决了。

    除了返回整数值,还可以考虑抛出 Exception(不要害怕扩展 Exception类,该类随后将允许您在不同的块中捕获不同的异常!)。这将使您可以将一些常见的错误情况整齐地包装在代码中(例如,向用户抛出一个浮华的错误框。使用异常完成吗?检查)。

    关于php - 如何在CodeIgniter中进行正确的错误处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798997/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com