我正在查看PHP中预定义的Exceptions列表,我注意到了DomainException。有人知道DomainException是什么意思吗?这是否意味着数据模型验证失败?
答案 0 :(得分:21)
这里有一个非常热闹的讨论,关于没有人似乎知道什么是意味着什么:
http://bugs.php.net/bug.php?id=47097
从该链接的末尾开始:
域在此处表示数据域。那是 应抛出
DomainException
每当一个值不符合a 定义有效数据域。例子:
- 0不在分区域内。
- Foo不在工作日的域名中。
第一个不同于 范围和相似,但你可以使用 如果是
InvalidParameter
实际上是函数的一个参数 执行分裂。如果是的话 在函数内部计算的值 在执行分工之前 然后一个预先条件检查抛出 而不是执行分裂, 然后它变成DomainException
。
答案 1 :(得分:5)
RangeException
的说明更有帮助:
抛出异常以指示程序执行期间的范围错误。通常这意味着除了/溢出之外还有一个算术错误。这是DomainException的运行时版本。
我认为它也适用于非算术,例如见user comment。
例如,如果您希望某个值位于集合{'jpeg', 'png', 'gif', 'bmp'}
中并且您收到其他内容,例如'foo'
,则它是DomainException(逻辑)的良好候选者/ RangeException
(运行时)。我很确定你能想到许多其他用例。
另外,我刚刚发现这篇有用的文章,它提供了比php.net更详尽的解释:
How to use built-in SPL exception classes for better error handling
答案 2 :(得分:3)