The Error package provides two interfaces. Firstly Error provides a procedural interface to exception handling. Secondly Error is a base class for errors/exceptions that can either be thrown, for subsequent catch, or can simply be recorded. Errors in the class Error should not be thrown directly, but the user should throw errors from a sub-class of Error.