传播异常的异常注释

时间:2015-09-28 14:29:20

标签: php exception phpdoc

假设我有一个抛出异常a的函数$e。因此,根据phpdoc,我应该对@throws的定义进行注释a

当我有另一个函数b调用a

function b() {
   a();
}

@throw的定义b注释,表明b可能会抛出这种异常是好的做法/不良做法/正确/错误吗?

2 个答案:

答案 0 :(得分:3)

@throws注释是指示开发人员函数()是否可以抛出异常
首先,您必须提出问题:为什么不以b()方式捕获异常,是否有正当理由?
是吗?因此您必须添加@throws注释,它会指示您或其他开发人员使用function()b()不安全,他们将决定是否会 捕获或传播例外
同样,因为 PHP 并不强制您捕获另一个函数抛出的异常,@throws注释变为必须/强制< / strong>练习

答案 1 :(得分:1)

事实上,b()会抛出异常。是直接还是间接发生与呼叫者无关。现在,注释不应该记录可能会改变甚至随不同派生类而变化的内部实现细节。相反,注释记录了调用者的可见行为,因此有效例外也应该是注释的一部分。