验证器作为异常方法

时间:2015-09-29 14:45:05

标签: validation exception-handling code-organization

图片我们有一个例外FooException和一个验证器FooValidator

<?php
class FooException extends \Exception {}
class FooValidator {
  public static function validate($string) {
    if ('foo' != (string)$string) {
      throw new FooException();
    }
    return true;
  }
}

如果我们将验证位移到异常中会怎么样?

<?php
class FooException extends \Exception {
  public static function validate($string) {
    if ('foo' != (string)$string) {
      throw new static;
    }
    return true;
  }
}

这样,异常是唯一的责任,验证代码并在此类验证失败时抛出自身。这样你就不需要通用验证类 - 通常包含几个方法 - 或几对FooValidator,FooException类

免责声明:此问题是使用PHP编写的,但可以应用于任何其他语言

0 个答案:

没有答案