PHP: 如果一个变量值错误,我应该做什么SPL异常?

PHP: What SPL exception should I do if a variable value is wrong?

php中有两个类似的异常:RangeException and the UnexpectedValueException. Both are subclasses of the RuntimeException。问题是,我看不出太大区别。

RangeException
抛出异常以指示程序执行期间的范围错误。通常这意味着除了 under/overflow 之外还有一个算术错误。这是 DomainException.

的运行时版本

UnexpectedValueException
如果值与一组值不匹配,则抛出异常。通常,当一个函数调用另一个函数并期望 return 值属于特定类型或值时,通常会发生这种情况,不包括算术或缓冲区相关错误。

我知道这是一个运行时错误。如果变量类型不对,很简单,我应该用UnexpectedValueException.

变量错误怎么办?

看来最好还是留在UnexpectedValueException

  1. 我还没有找到任何约定。
  2. 意料之外的值是对程序员更好的描述。
  3. 如果有特殊的恢复代码,自定义异常会更好