MCRO
C++23 utilities for Unreal Engine.
|
#include <WindowsError.h>
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< SErrorDisplay > | CreateErrorWidget () |
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, IErrorRef > | InnerErrors |
TArray< std::source_location > | ErrorPropagation |
EErrorSeverity | Severity = EErrorSeverity::ErrorComponent |
FString | Message |
FString | Details |
FString | CodeContext |
Protected Attributes inherited from Mcro::Types::IHaveType | |
FName | TypeName |
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.
Mcro::Windows::Error::FHresultError::FHresultError | ( | HRESULT | result, |
bool | fastMode = false ) |
result | The input HRESULT |
fastMode | Set 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. |
void Mcro::Windows::Error::FHresultError::SetHumanReadable | ( | ) |
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.
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.
HRESULT Mcro::Windows::Error::FHresultError::Result |
The result code wrapped by this error
Definition at line 55 of file WindowsError.h.
FString Mcro::Windows::Error::FHresultError::SystemMessage |
The message what the Windows API communicates to us
Definition at line 58 of file WindowsError.h.