在以下示例中,什么是适当的异常类型?应该InvalidArgumentException
什么时候抛出BadMethodCallException
?看起来这个例子属于PHP手册提供的任何定义:
BadMethodCallException:如果回调引用了未定义的方法或者缺少某些参数,则抛出异常。
InvalidArgumentException:如果参数不是预期的类型,则抛出异常。
class Foo
{
public function Bar($arg1, $arg2)
{
if (!$arg1 && !$arg2)
{
// InvalidArgumentException or BadMethodCallException?
throw new Exception('Both arguments are required.');
}
...
}
...
}
$Foo = new Foo();
$Foo->Bar(null, null); // Exception
答案 0 :(得分:0)
BadMethodCallException
应该被抛出
当传递的参数没有你期望的类型时(例如你期望一个数组,但你得到一个字符串),你会抛出InvalidArgumentException
。