12 API::Assert::LessThanOrEqual(AErrorCode, UNSUPPORTED_ALLOCATION_AMOUNT);
16 ErrorMessage =
API::String::Static(u8
"An operation was attempted with an invalid enum code");
18 case INVALID_INTEROP_CONSTRUCTOR:
19 ErrorMessage =
API::String::Static(u8
"An engine allocation was attempted with a malformed constructor");
21 case INVALID_OPERATION:
22 ErrorMessage =
API::String::Static(u8
"An illegal call was made given prexisting conditions");
24 case INVALID_PARAMETERS:
25 ErrorMessage =
API::String::Static(u8
"The current arrangment of arguments passed the function is invalid");
27 case NEGATIVE_HEAP_ALLOCATION:
30 case UNSUPPORTED_ALLOCATION_AMOUNT:
31 ErrorMessage =
API::String::Static(u8
"An allocation was attempted with a size greater than 2047MB");
37 Base(ErrorMessage(AErrorCode), AErrorCode, Level::VIOLATION)
43 API::Assert::LessThanOrEqual(AErrorCode, THREAD_CREATION_FAILURE);
46 case DIRECTORY_NOT_EMPTY:
55 case STREAM_NOT_READABLE:
56 ErrorMessage =
API::String::Static(u8
"Generic error for read failures. See functions for further documentation");
58 case STREAM_NOT_WRITABLE:
59 ErrorMessage =
API::String::Static(u8
"Generic error for write failures. See functions for further documentation");
61 case HEAP_ALLOCATION_FAILURE:
62 ErrorMessage =
API::String::Static(u8
"Current heap has no block large enough for a requested allocation and expansion failed");
64 case MUTEX_INITIALIZATION_FAILURE:
68 ErrorMessage =
API::String::Static(u8
"Path has become invalidated, most likely due to deletion");
71 ErrorMessage =
API::String::Static(u8
"Attempted to use a path greater than the maximum allowed byte value");
73 case STRING_VALIDATION_FAILURE:
76 case SYSTEM_PATH_RETRIEVAL_FAILURE:
79 case THREAD_CREATION_FAILURE:
87 Base(ErrorMessage(AErrorCode), AErrorCode, Level::SYSTEM_DATA)
92 API::Assert::LessThanOrEqual(AErrorCode, PROCESS_TERMINATION_ERROR);
95 case MEMORY_COMMITAL_FAILURE:
98 case MEMORY_PROTECT_FAILURE:
99 ErrorMessage =
API::String::Static(u8
"Failed to implement requested virtual memory protection level.");
101 case MEMORY_RESERVATION_FAILURE:
104 case MODULE_FUNCTION_LOAD_FAILURE:
105 ErrorMessage =
API::String::Static(u8
"Failed to load a requested function from a module.");
107 case MODULE_LOAD_FAILURE:
110 case PATH_EVALUATION_FAILURE:
113 case PROCESS_CREATION_ERROR:
116 case PROCESS_EXIT_CODE_UNCHECKABLE:
117 ErrorMessage =
API::String::Static(u8
"Tried to check the error code of a Process the OS would not allow.");
119 case PROCESS_TERMINATION_ERROR:
120 ErrorMessage =
API::String::Static(u8
"Failed to terminate process, most likely due to insufficient permissions.");
127 Base(ErrorMessage(AErrorCode), AErrorCode, Level::INTERNAL)
ErrorCode
The error code of the exception.
static API::String::Static ErrorMessage(const ErrorCode AErrorCode) noexcept
Get the associated message for an exception.
ErrorCode
The error code of the exception.
thread_local unsigned int FLastInstantiatedExceptionCode
Used to better verify tests, should be optimized out by the linker. See: http://stackoverflow.com/questions/1229430/how-do-i-prevent-my-unused-global-variables-being-compiled-out.
A string pointing to unchanging data in the stack above it or the data segment. Must have UTF-8 encod...
static API::String::Static ErrorMessage(const ErrorCode AErrorCode) noexcept
Get the associated message for an exception.
Internal(const ErrorCode AErrorCode) noexcept
Construct an Internal exception.
SystemData(const ErrorCode AErrorCode) noexcept
Construct a SystemData exception.
static API::String::Static ErrorMessage(const ErrorCode AErrorCode) noexcept
Get the associated message for an exception.
Precompiled header for inter-engine operations.
ErrorCode
The error code of the exception.
Violation(const ErrorCode AErrorCode) noexcept
Construct a Violation exception.
The base exception recognized by the entire engine.