我目前正在开发我的 PHP SDK 以与 REST API 交互。假设 API 可以创建“汽车”模型。为了创造一辆汽车,我会写这样的东西......
$car = $api->create('car', array(
'wheels' => 6,
'color' => 'blue'
));
如果其他开发人员下载了我的 SDK 并尝试错误地创建汽车模型而忘记包含所需的参数。我如何通过 SDK 抛出异常以通知开发人员缺少参数,而不是他们看到像 Warning: Missing argument 1 for BMW::create()
这样的 PHP 错误,其中不包含很多细节.
最佳答案
function foo($bar, $baz) {
if (!isset($bar, $baz)) {
throw new InvalidArgumentException("Detailed description of what's wrong here");
}
...
}
PHP 将触发一个警告,但仍会像往常一样执行您的函数(这是...哦,好吧,让我们不要详述它)。这意味着您可以在函数内部进行常规参数检查,并根据需要尽可能详细地抛出异常或 trigger_error
。
关于处理缺少参数的 PHP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30100702/