From 4b86554a0354d78efeb40e551eaccaac0fecd1d1 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 25 Sep 2018 13:08:40 +0800 Subject: Change the structure of project. --- src/exception.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/exception.cpp (limited to 'src/exception.cpp') 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 + +namespace cru +{ + inline std::string HResultMakeMessage(HRESULT h_result, std::optional 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 additional_message) + : runtime_error(HResultMakeMessage(h_result, std::nullopt)), h_result_(h_result) + { + + } + + inline std::string Win32MakeMessage(DWORD error_code, std::optional 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 additional_message) + : runtime_error(Win32MakeMessage(error_code, std::nullopt)), error_code_(error_code) + { + + } +} -- cgit v1.2.3