aboutsummaryrefslogtreecommitdiff
path: root/include/cru/common/Exception.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/common/Exception.h')
-rw-r--r--include/cru/common/Exception.h60
1 files changed, 0 insertions, 60 deletions
diff --git a/include/cru/common/Exception.h b/include/cru/common/Exception.h
deleted file mode 100644
index 609fd2c9..00000000
--- a/include/cru/common/Exception.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#pragma once
-#include "String.h"
-
-#include <exception>
-#include <optional>
-
-namespace cru {
-#ifdef _MSC_VER
-#pragma warning(disable : 4275)
-#endif
-class CRU_BASE_API Exception : public std::exception {
- public:
- explicit Exception(String message = {},
- std::unique_ptr<std::exception> inner = nullptr);
-
- ~Exception() override;
-
- public:
- String GetMessage() const { return message_; }
-
- std::exception* GetInner() const noexcept { return inner_.get(); }
-
- const char* what() const noexcept override;
-
- protected:
- void SetMessage(String message) { message_ = std::move(message); }
-
- void AppendMessage(StringView additional_message);
- void AppendMessage(std::optional<StringView> additional_message);
-
- private:
- String message_;
- mutable std::string utf8_message_;
- std::unique_ptr<std::exception> inner_;
-};
-
-class CRU_BASE_API TextEncodeException : public Exception {
- public:
- using Exception::Exception;
-};
-
-class ErrnoException : public Exception {
- public:
- /**
- * @brief will retrieve errno automatically.
- */
- explicit ErrnoException(String message = {});
- ErrnoException(String message, int errno_code);
-
- CRU_DELETE_COPY(ErrnoException)
- CRU_DELETE_MOVE(ErrnoException)
-
- ~ErrnoException() override = default;
-
- int GetErrnoCode() const { return errno_code_; }
-
- private:
- int errno_code_;
-};
-} // namespace cru