diff options
author | Max Horn | 2011-04-18 17:39:31 +0200 |
---|---|---|
committer | Max Horn | 2011-04-18 18:22:02 +0200 |
commit | 73f04118f3d03e25fa1139cfea2b1330f0098bd4 (patch) | |
tree | bd0d638d9fbecf5207d0ac0fd775febca9e8b3db /common/error.h | |
parent | e9c228564a97267bd439704b96cb659986511224 (diff) | |
download | scummvm-rg350-73f04118f3d03e25fa1139cfea2b1330f0098bd4.tar.gz scummvm-rg350-73f04118f3d03e25fa1139cfea2b1330f0098bd4.tar.bz2 scummvm-rg350-73f04118f3d03e25fa1139cfea2b1330f0098bd4.zip |
COMMON: Rename Error to ErrorCode, introduce new Error class
Diffstat (limited to 'common/error.h')
-rw-r--r-- | common/error.h | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/common/error.h b/common/error.h index 58343114a2..9d74ccac9b 100644 --- a/common/error.h +++ b/common/error.h @@ -26,6 +26,8 @@ #ifndef COMMON_ERROR_H #define COMMON_ERROR_H +#include "common/str.h" + namespace Common { /** @@ -43,7 +45,7 @@ namespace Common { * kPathInvalidError would be correct, but these would not be: kInvalidPath, * kPathInvalid, kPathIsInvalid, kInvalidPathError */ -enum Error { +enum ErrorCode { kNoError = 0, ///< No error occurred kInvalidPathError, ///< Engine initialization: Invalid game path was passed kNoGameDataFoundError, ///< Engine initialization: No game data was found in the specified location @@ -73,12 +75,39 @@ enum Error { }; /** - * Maps an error code to equivalent string description. - * - * @param error error code to be converted - * @return a pointer to string description of the error + * An Error instance pairs an error code with string description providing more + * details about the error. For every error code, a default description is + * provided, but it is possible to optionally augment that description with + * extra information when creating a new Error instance. */ -const char *errorToString(Error error); +class Error { +protected: + ErrorCode _code; + String _desc; +public: + /** + * Construct a new Error with the specified error code and the default + * error message. + */ + Error(ErrorCode code = kUnknownError); + + /** + * Construct a new Error with the specified error code and an augmented + * error message. Specifically, the provided extra text is appended + * to the default message, with ": " inserted in between. + */ + Error(ErrorCode code, const String &extra); + + /** + * Get the description of this error. + */ + const String &getDesc() const { return _desc; } + + /** + * Get the error code of this error. + */ + ErrorCode getCode() const { return _code; } +}; } // End of namespace Common |