Used to keep track of the error conditions raised during execution. Includes functions to log and retrieve error codes and also the somewhat more meaningful error strings.