PHP错误处理缺少的参数

时间:2015-05-07 12:10:16

标签: php

我目前正在开发我的PHP SDK以与REST API进行交互。我们假设API可以创建一个“汽车”。模型。要创造一辆汽车我会写这样的......

$car = $api->create('car', array(
   'wheels' => 6,
   'color'  => 'blue'
));

如果其他开发者下载我的SDK并尝试错误地创建汽车模型并忘记包含必需的参数。如何通过SDK抛出异常以通知开发人员缺少参数,除了他们看到像Warning: Missing argument 1 for BMW::create()这样的PHP错误,其中不包含许多细节。

3 个答案:

答案 0 :(得分:5)

function foo($bar, $baz) {
    if (!isset($bar, $baz)) {
        throw new InvalidArgumentException("Detailed description of what's wrong here");
    }
    ...
}

PHP会触发警告,但仍会像往常一样执行你的功能(这是......哦,好吧,我们不要纠缠于此)。这意味着您可以在函数内部进行常规参数检查,并根据需要尽可能详细地抛出异常或trigger_error

答案 1 :(得分:0)

请浏览此页面...

http://php.net/manual/en/language.exceptions.php

尝试类似下面的内容

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo "Hello World\n";
?>

答案 2 :(得分:0)

从PHP 7.1开始,使用很少参数的用户定义函数将导致Error异常。您不需要自己实现功能。

https://www.php.net/manual/en/migration71.incompatible.php