diff options
Diffstat (limited to 'zencore/except.cpp')
| -rw-r--r-- | zencore/except.cpp | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/zencore/except.cpp b/zencore/except.cpp deleted file mode 100644 index 2749d1984..000000000 --- a/zencore/except.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#include <fmt/format.h> -#include <zencore/except.h> - -namespace zen { - -#if ZEN_PLATFORM_WINDOWS - -class WindowsException : public std::exception -{ -public: - WindowsException(std::string_view Message) - { - m_hResult = HRESULT_FROM_WIN32(GetLastError()); - m_Message = Message; - } - - WindowsException(HRESULT hRes, std::string_view Message) - { - m_hResult = hRes; - m_Message = Message; - } - - WindowsException(HRESULT hRes, const char* Message, const char* Detail) - { - m_hResult = hRes; - - ExtendableStringBuilder<128> msg; - msg.Append(Message); - msg.Append(" (detail: '"); - msg.Append(Detail); - msg.Append("')"); - - m_Message = msg.c_str(); - } - - virtual const char* what() const override { return m_Message.c_str(); } - -private: - std::string m_Message; - HRESULT m_hResult; -}; - -void -ThrowSystemException([[maybe_unused]] HRESULT hRes, [[maybe_unused]] std::string_view Message) -{ - if (HRESULT_FACILITY(hRes) == FACILITY_WIN32) - { - throw std::system_error(std::error_code(hRes & 0xffff, std::system_category()), std::string(Message)); - } - else - { - throw WindowsException(hRes, Message); - } -} - -#endif // ZEN_PLATFORM_WINDOWS - -void -ThrowSystemError(uint32_t ErrorCode, std::string_view Message) -{ - throw std::system_error(std::error_code(ErrorCode, std::system_category()), std::string(Message)); -} - -std::string -GetLastErrorAsString() -{ - return GetSystemErrorAsString(zen::GetLastError()); -} - -std::string -GetSystemErrorAsString(uint32_t ErrorCode) -{ - return std::error_code(ErrorCode, std::system_category()).message(); -} - -#if defined(__cpp_lib_source_location) -void -ThrowLastErrorImpl(std::string_view Message, const std::source_location& Location) -{ - throw std::system_error(std::error_code(zen::GetLastError(), std::system_category()), - fmt::format("{}({}): {}", Location.file_name(), Location.line(), Message)); -} -#else -void -ThrowLastError(std::string_view Message) -{ - throw std::system_error(std::error_code(zen::GetLastError(), std::system_category()), std::string(Message)); -} -#endif - -} // namespace zen |