我正在浏览PHP中预定义的Exceptions列表,我注意到了DomainException.有人知道DomainException是什么意思吗?这是否意味着数据模型验证失败?
kar*_*m79 21
这里有一个非常热闹的讨论,关于没有人似乎知道什么意思:
http://bugs.php.net/bug.php?id=47097
从该链接的结尾:
域在这里表示数据域.这是一个
DomainException一旦某个值不符合规定的有效数据域必须被抛出.例子:
- 0不在分区域中.
- Foo不在工作日的域名中.
第一个不同于超出范围和相似,但你可以使用
InvalidParameter,以防它实际上是执行除法的函数的参数.如果它是在执行除法之前在函数内部计算的值,然后执行预条件检查而不是执行除法,则它变为aDomainException.
描述RangeException更有帮助:
抛出异常以指示程序执行期间的范围错误.通常这意味着除了/溢出之外还有一个算术错误.这是DomainException的运行时版本.
我认为它也适用于非算术,例如,请参阅此用户评论.
例如,如果您希望某个值位于集合中{'jpeg', 'png', 'gif', 'bmp'}并且您收到其他类似值'foo',则它是DomainException(逻辑)/ RangeException(运行时)的良好候选者.我很确定你能想到很多其他用例.
另外,我刚刚发现这篇有用的文章,它提供了比php.net更全面的解释:
如何使用内置的SPL异常类来更好地处理错误