diff options
-rw-r--r-- | include/cru/base/Exception.h | 13 | ||||
-rw-r--r-- | src/base/Exception.cpp | 4 |
2 files changed, 10 insertions, 7 deletions
diff --git a/include/cru/base/Exception.h b/include/cru/base/Exception.h index 6f0727ce..f42406e0 100644 --- a/include/cru/base/Exception.h +++ b/include/cru/base/Exception.h @@ -12,9 +12,9 @@ namespace cru { class CRU_BASE_API Exception : public std::exception { public: explicit Exception(std::string message = "", - std::unique_ptr<std::exception> inner = nullptr); + std::shared_ptr<std::exception> inner = nullptr); explicit Exception(StringView message, - std::unique_ptr<std::exception> inner = nullptr); + std::shared_ptr<std::exception> inner = nullptr); ~Exception() override; @@ -37,14 +37,17 @@ class CRU_BASE_API Exception : public std::exception { [[deprecated("Use void SetMessage(std::string message) instead.")]] void SetMessage(StringView message); - [[deprecated("Use void AppendMessage(std::string_view additional_message) instead.")]] + [[deprecated( + "Use void AppendMessage(std::string_view additional_message) instead.")]] void AppendMessage(StringView additional_message); - [[deprecated("Use void AppendMessage(std::optional<std::string_view> additional_message) instead.")]] + [[deprecated( + "Use void AppendMessage(std::optional<std::string_view> " + "additional_message) instead.")]] void AppendMessage(std::optional<StringView> additional_message); private: std::string message_; - std::unique_ptr<std::exception> inner_; + std::shared_ptr<std::exception> inner_; }; class CRU_BASE_API PlatformException : public Exception { diff --git a/src/base/Exception.cpp b/src/base/Exception.cpp index a92b6953..1f03c2ba 100644 --- a/src/base/Exception.cpp +++ b/src/base/Exception.cpp @@ -7,10 +7,10 @@ constexpr auto NO_MESSAGE = "No message."; namespace cru { -Exception::Exception(std::string message, std::unique_ptr<std::exception> inner) +Exception::Exception(std::string message, std::shared_ptr<std::exception> inner) : message_(std::move(message)), inner_(std::move(inner)) {} -Exception::Exception(StringView message, std::unique_ptr<std::exception> inner) +Exception::Exception(StringView message, std::shared_ptr<std::exception> inner) : message_(message.ToUtf8()), inner_(std::move(inner)) {} Exception::~Exception() {} |