Static helper class for working with file paths - holding home, temporary and
user paths with methods to add, retrieve, make absolute, make relative and split
paths.
Effective Java: Programming Language Guide by Joshua Bloch
Item 40:Use checked exceptions for recoverable conditions
and run-time exceptions for programming errors.
When a programming error is detected in the normal course of the application -
such as a an unexpected value in a method call parameter, create an exception
of this type.