如何为 class 方法记录 "trigger_error()"?
How do I document "trigger_error()" for a class method?
如果我有以下class方法:
class ClassA
{
public function MethodA()
{
trigger_error('An error has occurred.', E_USER_ERROR);
}
}
... 那么记录它可能 "throw"(问题)显式使用 trigger_error()
错误的公认方式是什么?我发现最接近的是使用 @throws
或 @exception
。是否可能根本不应该记录这种行为,或者应该将其包含在方法描述本身中?
我问这个关于 trigger_error
的问题的原因是因为我使用了自定义错误日志记录 class,它由 自定义错误处理程序 调用,因此以有组织的方式发出运行时错误和 output/save 它们很方便。我应该只使用 @see trigger_error
还是 @see ErrorLog
(我的自定义 class)?
编辑:
对于那些想知道是否触发错误的脚本流程的人:脚本将不会在E_USER_ERROR
.
终止执行
The script will not terminate execution on E_USER_ERROR.
这可能是您更大的问题。 PHP 的错误机制相当……原始。它基本上只知道两种模式:通过触发通知、警告或严重警告(a.k.a.错误)来通知开发人员 潜在 问题,或者通过触发致命错误。触发(致命)错误但继续执行脚本并不是它的真正目的。
该函数应该简单地用 "triggers error if X, Y or Z" 进行非正式记录。这个通常表示"will kill script if X, Y or Z"。如果您要覆盖该行为,则由您决定。
如果可以以标准化方式处理这些错误,那么正式记录的错误就有意义了,这与异常非常相似。它们具有正式的文档标准 (@throws
) 并且可以以灵活的方式处理 (try..catch
)。您确实应该 使用异常来达到您在此处尝试使用错误的目的。
如果我有以下class方法:
class ClassA
{
public function MethodA()
{
trigger_error('An error has occurred.', E_USER_ERROR);
}
}
... 那么记录它可能 "throw"(问题)显式使用 trigger_error()
错误的公认方式是什么?我发现最接近的是使用 @throws
或 @exception
。是否可能根本不应该记录这种行为,或者应该将其包含在方法描述本身中?
我问这个关于 trigger_error
的问题的原因是因为我使用了自定义错误日志记录 class,它由 自定义错误处理程序 调用,因此以有组织的方式发出运行时错误和 output/save 它们很方便。我应该只使用 @see trigger_error
还是 @see ErrorLog
(我的自定义 class)?
编辑:
对于那些想知道是否触发错误的脚本流程的人:脚本将不会在E_USER_ERROR
.
The script will not terminate execution on E_USER_ERROR.
这可能是您更大的问题。 PHP 的错误机制相当……原始。它基本上只知道两种模式:通过触发通知、警告或严重警告(a.k.a.错误)来通知开发人员 潜在 问题,或者通过触发致命错误。触发(致命)错误但继续执行脚本并不是它的真正目的。
该函数应该简单地用 "triggers error if X, Y or Z" 进行非正式记录。这个通常表示"will kill script if X, Y or Z"。如果您要覆盖该行为,则由您决定。
如果可以以标准化方式处理这些错误,那么正式记录的错误就有意义了,这与异常非常相似。它们具有正式的文档标准 (@throws
) 并且可以以灵活的方式处理 (try..catch
)。您确实应该 使用异常来达到您在此处尝试使用错误的目的。