假设我有一个抛出异常a
的函数$e
。因此,根据phpdoc
,我应该对@throws
的定义进行注释a
。
当我有另一个函数b
调用a
function b() {
a();
}
对@throw
的定义b
注释,表明b
可能会抛出这种异常是好的做法/不良做法/正确/错误吗?
答案 0 :(得分:3)
@throws
注释是指示开发人员函数()是否可以抛出异常
首先,您必须提出问题:为什么不以b()
方式捕获异常,是否有正当理由?
是吗?因此您必须添加@throws
注释,它会指示您或其他开发人员使用function()b()
不安全,他们将决定是否会
捕获或传播例外
同样,因为 PHP 并不强制您捕获另一个函数抛出的异常,@throws
注释变为必须/强制< / strong>练习
答案 1 :(得分:1)
事实上,b()
会抛出异常。是直接还是间接发生与呼叫者无关。现在,注释不应该记录可能会改变甚至随不同派生类而变化的内部实现细节。相反,注释记录了调用者的可见行为,因此有效例外也应该是注释的一部分。