PHP:使用错误/异常处理传递空参数

时间:2014-08-02 10:55:05

标签: php exception exception-handling error-handling argument-passing

我正在试图弄清楚什么是更好的方法传递给类方法/标准函数。

基本上 - 如果我们对每个参数使用default null,那么我们可以在方法中验证它们并抛出异常,但是如果我们没有为它们分配任何默认值,并且在调用方法时没有传递任何参数会抛出错误。

我的问题是 - 哪一个更“正确”的方法:

public function getOne($id = null) {

    if (empty($id)) {

        throw new Exception('Method '.__METHOD__.' failed : invalid argument');

    }

    // throws an exception if no argument is passed

}

VS

public function getOne($id) {

    // throws an error if no argument is passed

}

第一种方法允许我捕获异常并返回相关输出(这里我可能错了)错误不提供这种功能。

另外 - 最好用类名提示对象实例参数或将其作为标准参数传递,并检查它是否是给定对象的实例 - 几乎相同的情况:

public function getOne($mdlUser = null) {

    if (
        is_object($mdlUser) &&
        $mdlUser instanceof 'UserModel'
    ) {

        throw new Exception('Method '.__METHOD__.' failed : invalid argument');

    }

    // throws an exception if no argument is passed

}

VS

public function getOne(UserModel $mdlUser) {

    // throws an error if no argument is passed

}

我想听听一些意见/事实,包括两者的利弊。

0 个答案:

没有答案