1
里面大控制器我会被称为许多不同的功能,创建一个用户,更新它们的顺序,在事件时间表。这些操作中的每一个通过在模型层的功能处理...这里是其中的功能之一的例子:
$user_id = 1;
$data = array('name' => 'Billy');
if (updateUser($user_id, $data) === false) {
// handle error?
}
// continue with rest of controller
问题:
我终于长出了现实检查今天实现我没有这样的编码的好理由......
如果updateUser()
返回false,那么我的数据库抽象层出现严重问题,导致我无法更新数据库中的数据。这绝不应该发生,因此没有任何实际的错误来显示我的用户(这将允许他们采取适当的行动)。
基本上我的应用程序在此基础上被打破了。
问:
我应该懒得检查应该从未返回false的功能呢?如果是这样如何?或者我应该像没有任何检查一样给他们打电话?
updateUser($foo)
createBooking($bar)
scheduleEvent($qux)
_“这绝不应该发生”_ - 当然,但它仍然可以发生(数据库服务器关闭,连接暂时因某种奇怪的原因而断开连接等)。如果发生这种情况,您是不是想向用户显示出现问题并要求他们再试一次?永远不要认为你的代码/服务器/系统不会有错误/问题。 jeroen的答案在下面是正确的处理方式。 –
这很有道理!我应该看看一个错误日志包。 –
...并使用异常(这正是他们所说的,正常流程中的异常)。 –