如何检查永不返回false的函数?

时间:2017-04-05 08:46:06

标签: php error-handling controller

背景

在大型控制器内部,我将调用许多不同的功能,创建用户,更新订单,在事件中安排。这些操作中的每一个都由模型层中的函数处理...以下是其中一个函数的示例:

$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)

1 个答案:

答案 0 :(得分:5)

当函数内部发生永远不会发生的事情时,抛出exception

然后您可以处理(捕获)您想要执行此操作的所有异常。例如,通过向用户显示友好消息并记录所有详细信息,以便您知道出了什么问题以及在哪里。

然后你可以删除if语句,只有在有效/正常选项时才使用它们。