我正在使用PHP的Codeigniter来构建我的应用程序,我有时觉得我在错误处理方面被淹死了。我在任何可能失败的地方添加“故障”。以下是一些例子:
在模型中:
在控制器中:
我想知道的是,我是否过度了?我觉得可能没有必要测试每个mysql查询,但话又说回来,如果其中一个因为某种原因而中断,那么脚本的其余部分将会失败或为用户弄乱。
最后,在错误处理的所有上述阶段中,将错误记录到文件中哪些位置是合适的?
答案 0 :(得分:0)
如果你在一个函数中有这么多的返回,你的代码结构很差。那,如果你正在运行原始SQL查询,除非你正在访问元数据,你可能最好转交给模型(CI有的东西)。
对于您的方法,请考虑类型提示。写的东西是:
function FunctionNameHere($user, $id, $test) {
}
通过考虑传入User
对象可以更好地编写,这允许您这样做:
function FunctionNameHere(User $user, $test) {
}
您的所有“错误参数设置”验证将为您做出并将引发错误。
对于SQL查询,请考虑使用模型,这将允许您再次检索对象。没有对象? NULL
被返回。问题解决了。
不要返回整数值,而是考虑抛出Exception
(并且不要害怕扩展Exception
类,然后允许您在不同的块中捕获不同的异常!)。这将允许您整齐地包装代码中的一些常见错误情况(例如向用户抛出一个华而不实的错误框。使用异常完成?检查)。