代码之家  ›  专栏  ›  技术社区  ›  oscarkuo

什么时候在PHP中抛出DomainException?

  •  18
  • oscarkuo  · 技术社区  · 15 年前

    我浏览了PHP中的预定义异常列表,发现 DomainException . 有人知道DomainException是什么意思吗?这是否意味着数据模型验证失败?

    3 回复  |  直到 7 年前
        1
  •  20
  •   Timo Tijhof avalkab    8 年前

    这里有一个非常有趣的讨论,关于似乎没有人知道什么是什么意思:

    http://bugs.php.net/bug.php?id=47097

    从链接的末尾开始:

    域是指数据域。那就是 一 DomainException 应投掷 当一个值不符合 定义了有效的数据域。实例:

    • 0不在用于划分的域中。
    • foo在工作日不在域中。

    第一个不同于 范围和相似,但你可以使用 InvalidParameter 万一是 实际上是函数的一个参数 执行除法。如果是 函数内部计算的值 在执行分割之前 然后是先决条件检查 不是执行部门, 然后它变成了 域名例外 .

        2
  •  5
  •   Gras Double    7 年前

    描述 RangeException 更有用的是:

    在程序执行期间引发异常以指示范围错误。通常这意味着存在一个算术错误,而不是欠/溢出。这是的运行时版本 DomainException .

    我认为它也适用于非算术,例如,看这个 user comment .

    例如,如果希望值在集合中 {'jpeg', 'png', 'gif', 'bmp'} 你收到了其他的东西 'foo' 是一个很好的候选人 域名例外 (逻辑) 范围异常 (运行时)。我很肯定你能想到很多其他的用例。


    另外,我刚刚发现了这篇有用的文章,它比php.net提供了更全面的解释: How to use built-in SPL exception classes for better error handling

        3
  •  3
  •   Greg    15 年前

    这种异常应该用于在数学意义上告知域错误。

    domain of a function .

    例如,平方根函数只能为正数定义(除非使用复数…)