Skip to content
Snippets Groups Projects

Better Error Handling and Logging

Merged Timm Fitschen requested to merge dev into main
All threads resolved!
3 files
+ 16
16
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 12
12
@@ -32,9 +32,9 @@ using std::runtime_error;
/**
* @brief Generic exception class of the caosdb client library.
*/
class GenericException : public runtime_error {
class Exception : public runtime_error {
public:
explicit GenericException(StatusCode code, const std::string &what_arg)
explicit Exception(StatusCode code, const std::string &what_arg)
: runtime_error(what_arg), code(code) {}
[[nodiscard]] inline auto GetCode() const -> StatusCode { return this->code; }
@@ -45,47 +45,47 @@ private:
/**
* @brief Exception for authentication errors.
*/
class AuthenticationError : public GenericException {
class AuthenticationError : public Exception {
public:
explicit AuthenticationError(const std::string &what_arg)
: GenericException(StatusCode::AUTHENTICATION_ERROR, what_arg) {}
: Exception(StatusCode::AUTHENTICATION_ERROR, what_arg) {}
};
/**
* @brief The connection to the CaosDB server is down.
*/
class ConnectionError : public GenericException {
class ConnectionError : public Exception {
public:
explicit ConnectionError(const std::string &what_arg)
: GenericException(StatusCode::CONNECTION_ERROR, what_arg) {}
: Exception(StatusCode::CONNECTION_ERROR, what_arg) {}
};
/**
* @brief The transaction terminated unsuccessfully.
*/
class TransactionError : public GenericException {
class TransactionError : public Exception {
public:
explicit TransactionError(const std::string &what_arg)
: GenericException(StatusCode::GENERIC_TRANSACTION_ERROR, what_arg) {}
: Exception(StatusCode::GENERIC_TRANSACTION_ERROR, what_arg) {}
};
/**
* @brief Exception for errors of the ConfigurationManager or other components
* of the configuration.
*/
class ConfigurationError : public GenericException {
class ConfigurationError : public Exception {
public:
explicit ConfigurationError(const std::string &what_arg)
: GenericException(StatusCode::CONFIGURATION_ERROR, what_arg) {}
: Exception(StatusCode::CONFIGURATION_ERROR, what_arg) {}
};
/**
* @brief The connection isn't known to the ConnectionManager under this name.
*/
class UnknownConnectionError : public GenericException {
class UnknownConnectionError : public Exception {
public:
explicit UnknownConnectionError(const std::string &what_arg)
: GenericException(StatusCode::UNKNOWN_CONNECTION_ERROR, what_arg) {}
: Exception(StatusCode::UNKNOWN_CONNECTION_ERROR, what_arg) {}
};
} // namespace caosdb::exceptions
Loading