让我们在课堂上说,我有这些非常人为的方法:
/**
* @param bool $flag
* @throws \InvalidArgumentException _bubbled up_ if $flag is not bool
*/
public function fu($flag){
$this->bar($flag);
}
/**
* @param bool $flag
* @throws \InvalidArgumentException if $flag is not bool
*/
private function bar($flag) {
if (!is_bool($flag)){
throw new \InvalidArgumentException('bool required');
}
}
由于只有fu()
是公开的,因此查看我的API的开发人员可能看不到bar()
可能会引发异常。我认为将额外的@throws
标记添加到fu()
是一个好主意,这样开发人员就会知道他们可能希望在调用它时捕获异常。
这是个好主意还是不好?为什么呢?