diff options
Diffstat (limited to 'src/base/Base.cpp')
| -rw-r--r-- | src/base/Base.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/base/Base.cpp b/src/base/Base.cpp index 49b0c462..7dd6337d 100644 --- a/src/base/Base.cpp +++ b/src/base/Base.cpp @@ -9,8 +9,6 @@ namespace cru { void UnreachableCode() { std::terminate(); } void NotImplemented() { std::terminate(); } -static constexpr auto NO_MESSAGE = "No message."; - Exception::Exception(std::string message, std::shared_ptr<std::exception> inner) : message_(std::move(message)), inner_(std::move(inner)) {} @@ -18,11 +16,8 @@ Exception::~Exception() {} const char* Exception::what() const noexcept { return message_.c_str(); } -void Exception::AppendMessage(const std::string& additional_message) { - AppendMessage(std::string_view(additional_message)); -} - void Exception::AppendMessage(std::string_view additional_message) { + if (additional_message.empty()) return; message_ += ' '; message_ += additional_message; } @@ -32,15 +27,17 @@ void Exception::AppendMessage( if (additional_message) AppendMessage(*additional_message); } -ErrnoException::ErrnoException() : ErrnoException(NO_MESSAGE) {} +ErrnoException::ErrnoException() : ErrnoException("") {} ErrnoException::ErrnoException(int errno_code) - : ErrnoException(NO_MESSAGE, errno_code) {} + : ErrnoException("", errno_code) {} ErrnoException::ErrnoException(std::string_view message) : ErrnoException(message, errno) {} ErrnoException::ErrnoException(std::string_view message, int errno_code) - : Exception(std::format("{} Errno is {}.", message, errno_code)), - errno_code_(errno_code) {} + : Exception(std::format("Errno is {}.", errno_code)), + errno_code_(errno_code) { + AppendMessage(message); +} } // namespace cru |
