diff options
author | crupest <crupest@outlook.com> | 2018-09-25 13:08:40 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-09-25 13:08:40 +0800 |
commit | 4b86554a0354d78efeb40e551eaccaac0fecd1d1 (patch) | |
tree | c8a73d848401f523ff91fe8ed1b0887aa88bbfb8 /src/exception.cpp | |
parent | cea138417c54d6cf8043b6334c22e3af957d26f8 (diff) | |
download | cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.tar.gz cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.tar.bz2 cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.zip |
Change the structure of project.
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) + { + + } +} |