我在 php 中使用异常抛出函数对我的类中的参数进行了一些检查。我有执行基本检查(===
等in_array
)并在错误时引发异常的函数。所以我可以做assertNumeric($argument, "\$argument is not numeric.");
而不是
if ( ! is_numeric($argument) ) {
throw new Exception("\$argument is not numeric.");
}
节省一些打字
我正在阅读关于 assert() 的php手册页的评论
正如 Wikipedia 上所述 - “断言主要是一种开发工具,当程序向公众发布时,它们通常会被禁用。” 和“断言应该用于记录逻辑上不可能的情况并发现编程错误——如果发生‘不可能’,那么根本上的事情显然是错误的。这与错误处理不同:大多数错误情况都是可能的,尽管有些可能极不可能在实践中发生。使用断言作为通用错误处理机制通常是不明智的:断言不允许从错误中优雅恢复,并且断言失败通常会突然停止程序的执行。断言也不会显示用户友好的错误信息。”
这意味着“gk at proliberty dot com”给出的建议强制启用断言,即使它们已被手动禁用,这违背了仅将它们用作开发工具的最佳实践
那么,我是不是“做错了”?还有什么其他/更好的方法?