MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Mcro::Windows::Error::FHresultError Class Reference

#include <WindowsError.h>

Inheritance diagram for Mcro::Windows::Error::FHresultError:
Mcro::Error::IError Mcro::Types::IHaveType

Public Member Functions

 FHresultError (HRESULT result, bool fastMode=false)
 
void SetHumanReadable ()
 
- Public Member Functions inherited from Mcro::Error::IError
FORCEINLINE decltype(InnerErrors) ::TRangedForIterator begin ()
 
FORCEINLINE decltype(InnerErrors) ::TRangedForConstIterator begin () const
 
FORCEINLINE decltype(InnerErrors) ::TRangedForIterator end ()
 
FORCEINLINE decltype(InnerErrors) ::TRangedForConstIterator end () const
 
void Initialize ()
 
virtual void SerializeYaml (YAML::Emitter &emitter, bool isRoot) const
 
FString ToString () const
 
std::string ToStringUtf8 () const
 
FORCEINLINE EErrorSeverity GetSeverity () const
 
FORCEINLINE int32 GetSeverityInt () const
 
FORCEINLINE FString const & GetMessage () const
 
FORCEINLINE FString const & GetDetails () const
 
FORCEINLINE FString const & GetCodeContext () const
 
FORCEINLINE TMap< FString, IErrorRef > const & GetInnerErrors () const
 
FORCEINLINE int32 GetInnerErrorCount () const
 
TArray< FString > GetErrorPropagation () const
 
FString GetErrorPropagationJoined () const
 
FStringView GetSeverityString () const
 
virtual TSharedRef< SErrorDisplayCreateErrorWidget ()
 
template<typename Self >
SelfRef< Self > WithMessage (this Self &&self, const FString &input, bool condition=true)
 
template<typename Self , typename... FormatArgs>
SelfRef< Self > WithMessageF (this Self &&self, const TCHAR *input, FormatArgs &&... fmtArgs)
 
template<typename Self , typename... FormatArgs>
SelfRef< Self > WithMessageFC (this Self &&self, bool condition, const TCHAR *input, FormatArgs &&... fmtArgs)
 
template<typename Self >
SelfRef< Self > WithSeverity (this Self &&self, EErrorSeverity input)
 
template<typename Self >
SelfRef< Self > AsRecoverable (this Self &&self)
 
template<typename Self >
SelfRef< Self > AsFatal (this Self &&self)
 
template<typename Self >
SelfRef< Self > AsCrashing (this Self &&self)
 
template<typename Self >
SelfRef< Self > WithDetails (this Self &&self, const FString &input, bool condition=true)
 
template<typename Self , typename... FormatArgs>
SelfRef< Self > WithDetailsF (this Self &&self, const TCHAR *input, FormatArgs &&... fmtArgs)
 
template<typename Self , typename... FormatArgs>
SelfRef< Self > WithDetailsFC (this Self &&self, bool condition, const TCHAR *input, FormatArgs &&... fmtArgs)
 
template<typename Self >
SelfRef< Self > WithCodeContext (this Self &&self, const FString &input, bool condition=true)
 
template<typename Self , CError Error>
SelfRef< Self > WithError (this Self &&self, const TSharedRef< Error > &input, bool condition=true)
 
template<typename Self , CError Error>
SelfRef< Self > WithError (this Self &&self, const FString &name, const TSharedRef< Error > &input, bool condition=true)
 
template<typename Self >
SelfRef< Self > WithErrors (this Self &&self, const TArray< TTuple< FString, IErrorRef > > &input, bool condition=true)
 
template<typename Self , CError... Errors>
SelfRef< Self > WithErrors (this Self &&self, const TSharedRef< Errors > &... errors)
 
template<typename Self , CError... Errors>
SelfRef< Self > WithErrors (this Self &&self, bool condition, const TSharedRef< Errors > &... errors)
 
template<typename Self >
SelfRef< Self > WithAppendix (this Self &&self, const FString &name, const FString &text, bool condition=true)
 
template<typename Self , typename... FormatArgs>
SelfRef< Self > WithAppendixF (this Self &&self, const FString &name, const TCHAR *text, FormatArgs &&... fmtArgs)
 
template<typename Self , typename... FormatArgs>
SelfRef< Self > WithAppendixFC (this Self &&self, bool condition, const FString &name, const TCHAR *text, FormatArgs &&... fmtArgs)
 
template<typename Self >
SelfRef< Self > Notify (this Self &&self, Observable::IState< IErrorPtr > &state)
 
template<typename Self >
SelfRef< Self > BreakDebugger (this Self &&self)
 
template<typename Self >
SelfRef< Self > WithCppStackTrace (this Self &&self, const FString &name={}, bool condition=true, int32 numAdditionalStackFramesToIgnore=0, bool fastWalk=!UE_BUILD_DEBUG)
 
template<typename Self >
SelfRef< Self > WithBlueprintStackTrace (this Self &&self, const FString &name={}, bool condition=true)
 
template<typename Self >
SelfRef< Self > WithLocation (this Self &&self, std::source_location location=std::source_location::current())
 
- Public Member Functions inherited from Mcro::Types::IHaveType
virtual ~IHaveType ()=default
 
template<typename Self >
SelfRef< Self > WithType (this Self &&self)
 
FORCEINLINE FName const & GetType () const
 
template<typename Derived , typename Self >
TSharedPtr< Derived > AsExactly (this Self &&self)
 

Data Fields

HRESULT Result
 
FString SystemMessage
 
FString ProgramID
 
FString Description
 

Additional Inherited Members

- Public Types inherited from Mcro::Types::IHaveType
template<typename Self >
using SelfRef = TSharedRef<std::decay_t<Self>>
 
- Static Public Member Functions inherited from Mcro::Error::IError
template<CError T, typename... Args>
requires CSharedInitializeable<T, Args...>
static TSharedRef< T > Make (T *newError, Args &&... args)
 
- Protected Member Functions inherited from Mcro::Error::IError
virtual void SerializeInnerErrors (YAML::Emitter &emitter) const
 
virtual void SerializeErrorPropagation (YAML::Emitter &emitter) const
 
virtual void AddError (const FString &name, const TSharedRef< IError > &error, const FString &typeOverride={})
 
virtual void AddAppendix (const FString &name, const FString &text, const FString &type=TEXT("Appendix"))
 
void AddCppStackTrace (const FString &name, int32 numAdditionalStackFramesToIgnore, bool fastWalk)
 
void AddBlueprintStackTrace (const FString &name)
 
virtual void SerializeMembers (YAML::Emitter &emitter, bool isRoot) const
 
virtual void NotifyState (Observable::IState< IErrorPtr > &state)
 
- Protected Member Functions inherited from Mcro::Types::IHaveType
template<typename Self >
void SetType (this Self &&self)
 
- Protected Attributes inherited from Mcro::Error::IError
TMap< FString, IErrorRefInnerErrors
 
TArray< std::source_location > ErrorPropagation
 
EErrorSeverity Severity = EErrorSeverity::ErrorComponent
 
FString Message
 
FString Details
 
FString CodeContext
 
- Protected Attributes inherited from Mcro::Types::IHaveType
FName TypeName
 

Detailed Description

An error wrapping HRESULT code returned by many Microsoft APIs. It will also collect human readable metadata.

Definition at line 39 of file WindowsError.h.

Constructor & Destructor Documentation

◆ FHresultError()

Mcro::Windows::Error::FHresultError::FHresultError ( HRESULT result,
bool fastMode = false )
Parameters
resultThe input HRESULT
fastModeSet it true to not gather human readable information about the error and just display the HRESULT code as is. Use it only in cursed situations where something may fail very often but it still needs a full IError somehow. Or just avoid such cursed situations in the first place.

Member Function Documentation

◆ SetHumanReadable()

void Mcro::Windows::Error::FHresultError::SetHumanReadable ( )

Field Documentation

◆ Description

FString Mcro::Windows::Error::FHresultError::Description

A textual description of the error (might be different from Message)

Definition at line 64 of file WindowsError.h.

◆ ProgramID

FString Mcro::Windows::Error::FHresultError::ProgramID

Stores the language-dependent programmatic ID (ProgID) for the class or application that raised the error.

Definition at line 61 of file WindowsError.h.

◆ Result

HRESULT Mcro::Windows::Error::FHresultError::Result

The result code wrapped by this error

Definition at line 55 of file WindowsError.h.

◆ SystemMessage

FString Mcro::Windows::Error::FHresultError::SystemMessage

The message what the Windows API communicates to us

Definition at line 58 of file WindowsError.h.


The documentation for this class was generated from the following file: