缺少参数的函数会引发ArgumentCountError
错误
ArgumentCountError:函数的参数太少......
而未知的命名参数只会引发一般错误
错误:未知的命名参数...
我只想抓住这两个错误,到目前为止我有以下
function foo(int $bar, int $baz) {}
try {
foo(...$arr); // $arr is always an associative array
} catch (ArgumentCountError $error) {
// ...
} catch (Error $error) {
if (preg_match("/^Unknown named parameter/", $e->getMessage())) {
// ...
} else {
throw $error;
}
}
我有什么替代方法?不应该Unknown named parameter
得到它自己的错误。
编辑:
对于一个UnknownNamedParameterError
用法
try {
$dynamicFoo(...$args);
} catch (UnknownNamedParameterError $error) {
// if needed, a check to confirm the error happened in foo
if (($error->getTrace()[0]["function"] ?? null) === $dynamicFoo) {
// Hacky but whatever
}
}