aboutsummaryrefslogtreecommitdiff
path: root/src/exception.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@outlook.com>2018-09-25 05:30:01 +0000
committerYuqian Yang <crupest@outlook.com>2018-09-25 05:30:01 +0000
commitea4b0966d8eb5a8e76dfbe4d833a07a4797a3284 (patch)
treee5918c686f27363bfacf7d47e4b93617872b908d /src/exception.cpp
parent001e1d955132a02a2f7effc841ab9e5ee425eda1 (diff)
parent03d078796ad31eb55d70ad0aa61254b301e989a6 (diff)
downloadcru-ea4b0966d8eb5a8e76dfbe4d833a07a4797a3284.tar.gz
cru-ea4b0966d8eb5a8e76dfbe4d833a07a4797a3284.tar.bz2
cru-ea4b0966d8eb5a8e76dfbe4d833a07a4797a3284.zip
Merge branch 'testing' into 'master'
Add CI. See merge request crupest/CruUI!5
Diffstat (limited to 'src/exception.cpp')
-rw-r--r--src/exception.cpp34
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)
+ {
+
+ }
+}