diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-04 22:17:27 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-04 22:17:27 +0800 |
| commit | ef6cff0f308d49326bbe0c3b557cb8ab6cca455b (patch) | |
| tree | 34914a6e76093d892ff10f8400d04c285eeab2c8 /include/cru/base/Exception.h | |
| parent | 8bea03e0811588e741050b598b8123865b333999 (diff) | |
| download | cru-ef6cff0f308d49326bbe0c3b557cb8ab6cca455b.tar.gz cru-ef6cff0f308d49326bbe0c3b557cb8ab6cca455b.tar.bz2 cru-ef6cff0f308d49326bbe0c3b557cb8ab6cca455b.zip | |
Move base Exception.h to Base.h.
Diffstat (limited to 'include/cru/base/Exception.h')
| -rw-r--r-- | include/cru/base/Exception.h | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/include/cru/base/Exception.h b/include/cru/base/Exception.h deleted file mode 100644 index c45cdc58..00000000 --- a/include/cru/base/Exception.h +++ /dev/null @@ -1,65 +0,0 @@ -#pragma once -#include "Base.h" - -#include <exception> -#include <optional> -#include <string_view> -#include <string> - -namespace cru { -#ifdef _MSC_VER -#pragma warning(disable : 4275) -#endif -class CRU_BASE_API Exception : public std::exception { - public: - explicit Exception(std::string message = "", - std::shared_ptr<std::exception> inner = nullptr); - - ~Exception() override; - - public: - std::string GetUtf8Message() const { return this->message_; } - - std::exception* GetInner() const noexcept { return inner_.get(); } - - const char* what() const noexcept override; - - protected: - void SetMessage(std::string message) { message_ = std::move(message); } - void AppendMessage(const std::string& additional_message); - void AppendMessage(std::string_view additional_message); - void AppendMessage(std::optional<std::string_view> additional_message); - - private: - std::string message_; - std::shared_ptr<std::exception> inner_; -}; - -class CRU_BASE_API PlatformException : public Exception { - public: - using Exception::Exception; // inherit constructors - - CRU_DEFAULT_DESTRUCTOR(PlatformException) -}; - -class CRU_BASE_API TextEncodeException : public Exception { - public: - using Exception::Exception; -}; - -class ErrnoException : public Exception { - public: - ErrnoException(); - explicit ErrnoException(int error_code); - /** - * @brief will retrieve errno automatically. - */ - explicit ErrnoException(std::string_view message); - ErrnoException(std::string_view message, int errno_code); - - int GetErrnoCode() const { return errno_code_; } - - private: - int errno_code_; -}; -} // namespace cru |
