传播异常的异常注释

Exception annotations for propagated exceptions

假设我有一个函数 a 抛出异常 $e。因此,根据 phpdoc 我应该在 a.

的定义上有一个注释 @throws

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

function b() {
   a();
}

practice/bad practice/correct/wrong 在 b 的定义上添加一个 @throw 注释表明 b 可以抛出那种异常好吗?

@throws annotation 是为开发者指明 function() 是否可以抛出异常
首先,你要问这个问题:为什么不在b()方法中捕获异常,有正当理由吗?
是吗? 所以你必须添加 @throws 注释,它会指示你或其他开发人员使用 function() b() 是不安全的,他们将决定是否将要 捕获或传播异常
,因为PHP不会强制你捕获另一个函数抛出的异常,所以@throws注解变成了一个must/mandatory练习

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