Nice validation technique


Reading the Paint.NET blog I found this post about parameter validation. It is a very cool one for at least three reasons:

  • Makes the code more readable. Making the code such that readers can infer (correctly!) what the code does without additional comments is very useful.
  • Makes the code shorter.
  • Can be easily adapted into any OO language (the examples are given in C#, but it is trivial to port it over to Java for example).

The method itself consists of creating a Validator class with methods named intuitively (like isNull, isNotNull, isInRectangle, etc) that can be chained, so that you can write something like this:

Validator.isNotNull(p)
  .isInRectangle(p, rect)
  .hasFoo(x)
  ....

Now you can either throw exceptions individually, or accumulate them and throw them together. A very nice technique indeed.


Leave a Reply

Your email address will not be published.