diff options
author | crupest <crupest@outlook.com> | 2018-09-25 13:37:33 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-09-25 13:37:33 +0800 |
commit | ccbc293c0158d4450c0db344474193f17925403f (patch) | |
tree | 1ecde3132b3299ab2f272f541a76bced67f983b1 /src/exception.cpp | |
parent | 184c3b2b39d3fa34f9349a7d7fbebe49bc62f7fc (diff) | |
parent | ea4b0966d8eb5a8e76dfbe4d833a07a4797a3284 (diff) | |
download | cru-ccbc293c0158d4450c0db344474193f17925403f.tar.gz cru-ccbc293c0158d4450c0db344474193f17925403f.tar.bz2 cru-ccbc293c0158d4450c0db344474193f17925403f.zip |
Merge branch 'master' into issue4-dev
Diffstat (limited to 'src/exception.cpp')
-rw-r--r-- | src/exception.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/exception.cpp b/src/exception.cpp new file mode 100644 index 00000000..a1d59ceb --- /dev/null +++ b/src/exception.cpp @@ -0,0 +1,34 @@ +#include "exception.h" + +#include <fmt/format.h> + +namespace cru +{ + inline std::string HResultMakeMessage(HRESULT h_result, std::optional<std::string> message) + { + if (message.has_value()) + return fmt::format("An HResultError is thrown. HRESULT: {:#08x}.\nAdditional message: {}\n", h_result, message.value()); + else + return fmt::format("An HResultError is thrown. HRESULT: {:#08x}.\n", h_result); + } + + HResultError::HResultError(HRESULT h_result, std::optional<std::string_view> additional_message) + : runtime_error(HResultMakeMessage(h_result, std::nullopt)), h_result_(h_result) + { + + } + + inline std::string Win32MakeMessage(DWORD error_code, std::optional<std::string> message) + { + if (message.has_value()) + return fmt::format("Last error code: {:#04x}.\nAdditional message: {}\n", error_code, message.value()); + else + return fmt::format("Last error code: {:#04x}.\n", error_code); + } + + Win32Error::Win32Error(DWORD error_code, std::optional<std::string_view> additional_message) + : runtime_error(Win32MakeMessage(error_code, std::nullopt)), error_code_(error_code) + { + + } +} |