【发布时间】:2013-05-28 18:32:50
【问题描述】:
我正在使用 PHP 的 Codeigniter 来构建我的应用程序,有时我觉得自己被错误处理淹没了。我在任何可能失败的地方添加“故障保险”。以下是一些示例:
在模型中:
- 如果没有提供所有模型方法参数,则返回 false
- 对于每一个mysql查询,如果查询失败,返回false
- 根据情况,如果查询的行数0),返回false
在控制器中:
- 如果控制器方法缺少必需的参数,则返回 false
- 如果被调用模型返回 false,则重定向并显示错误消息,或显示错误视图
我想知道的是,我做得过火了吗?我觉得可能没有必要测试每个 mysql 查询,但话又说回来,如果其中一个确实因某种原因而中断,则脚本的其余部分将失败或给用户带来麻烦。
最后,在上述所有错误处理阶段中,哪些地方适合将错误记录到文件中?
【问题讨论】:
-
模型应该抛出异常并捕获并解决他们可以处理的异常并重新抛出其他任何异常。如果/如何向用户呈现异常是控制器/视图的工作。
-
请记住,在开发环境中处理错误和在面向用户的实时环境中处理错误可能是两件不同的事情。不过,@Orangepill 是对的。捕获模型中的异常,然后使用您的控制器/视图来决定您是否应该呈现完整的调试转储,或者只是告诉用户您有一个“oopsie”。
标签: php codeigniter error-handling