Error handling functions. More...
#include <boost/preprocessor/cat.hpp>
#include <kanzi/core/debug/assert.hpp>
#include <kanzi/core/legacy/kzs_types.hpp>
#include <kanzi/core/cpp/string_view.hpp>
Classes | |
class | kanzi::detail::StringLogger |
Stores log messages in a string for later retreival by error reporting subsystem. More... | |
Namespaces | |
kanzi | |
kanzi::detail | |
Macros | |
#define | KZS_EXCEPTION_MESSAGE_MAXIMUM_LENGTH |
Maximum length of exception. More... | |
#define | KZS_SUCCESS |
Success code. More... | |
#define | KZS_ERROR_ASSERTION_FAILED |
Assertion failed. More... | |
#define | KZS_ERROR_NOT_IMPLEMENTED_YET |
Functionality is not yet implemented. More... | |
#define | KZS_ERROR_ENUM_OUT_OF_RANGE |
Invalid value for enum. More... | |
#define | KZS_ERROR_ILLEGAL_OPERATION |
Trying to perform illegal operation. More... | |
#define | KZS_ERROR_ILLEGAL_ARGUMENT |
An argument was invalid for the given context. More... | |
#define | KZS_ERROR_MALFORMED_DATA |
Data is malformed. More... | |
#define | KZS_ERROR_ARRAY_OUT_OF_BOUNDS |
Trying to access array with invalid index. More... | |
#define | KZS_ERROR_INVALID_STATE |
Program is in invalid state. More... | |
#define | KZ_LOG_CATEGORY_LEGACY_EXCEPTIONS |
#define | kzsSuccess() |
Return from the function without any error code. More... | |
#define | KZ_UNIQUE_NAME_INTERNAL(name) |
#define | KZ_APPEND_MESSAGE_TO_STRING_LOGGER_INTERNAL(logger, logMessage) |
#define | KZ_REPORT_ERROR_INTERNAL(new_error, logMessage) |
#define | KZ_REPORT_EXCEPTION_INTERNAL(error, logMessage) |
#define | kzsErrorThrow(new_error, logMessage) |
Return from the function with the given error code. More... | |
#define | kzsExceptionThrow(new_exception, logMessage) |
Return from the function with the given exception code. More... | |
#define | kzsExceptionRethrow(param_exception) |
Return from the function with the given exception code. More... | |
#define | kzsErrorTest(test, new_error, logMessage) |
Return from the function with the given error code, if the test is false. More... | |
#define | kzsExceptionTest(test, new_exception, logMessage) |
Return from the function with the given exception code, if the test is false. More... | |
#define | kzsErrorForward(error) |
Return from the function with the given error code, if it is one. More... | |
#define | kzsExceptionForward(exception) |
Return from the function with the given exception or error code, if it is one. More... | |
#define | kzsExceptionForwardAsError(exception, new_error, logMessage) |
If the given exception code is an error, pass it forward. More... | |
#define | kzsErrorSubstitute(error, new_error, logMessage) |
Return from the function with the given new error code, if the given old code is also an error. More... | |
#define | kzsExceptionSubstitute(error, new_exception, logMessage) |
Return from the function with the given new exception code, if the given old code is also an exception. More... | |
#define | kzsErrorIf(error) |
Test if the given error is an error. More... | |
#define | kzsExceptionCatch(exception, exception_code) |
Test if the given exception matches the specified exception code. More... | |
#define | kzsExceptionCatchAll(exception) |
Test if the given exception is an actual exception and not success or error. More... | |
#define | KZS_NOT_IMPLEMENTED_YET |
Macro to use to indicate that some code is not yet implemented. More... | |
#define | KZS_NOT_IMPLEMENTED_YET_ERROR |
Macro to use to indicate and throw error that some code is not yet implemented. More... | |
#define | KZS_NOT_IMPLEMENTED_YET_ERROR_TEXT(message) |
Macro to use to indicate and throw error with an explanation, that some code is not yet implemented. More... | |
#define | kzsErrorLog(errorCode, message) |
Logs the given error code with given message. More... | |
#define | kzsExceptionLog(errorCode, message) |
Logs exception with given error code with given message. More... | |
Typedefs | |
typedef int | kzsError |
Error code type definition. More... | |
typedef int | kzsException |
Exception code type definition, extends error. More... | |
typedef void(* | KzsErrorCallback) (kzsError errorCode, kzString message) |
Callback that is triggered in error situations. More... | |
typedef void(* | KzsExceptionCallback) (kzsError errorCode, kzString message) |
Callback that is triggered in exception situations. More... | |
Functions | |
KANZI_API void | kzsErrorThrow_private (kzsError error, kzString message) |
Wrapper for kzsErrorThrow() to share more code. More... | |
KANZI_API void | kzsExceptionThrow_private (kzsError error, kzString message) |
Wrapper for kzsExceptionThrow() to share more code. More... | |
KANZI_API void | kzsStoreErrorMessage (kzsError errorCode, kzString message) |
Stores error message in global storage area. More... | |
KANZI_API void | kzsStoreExceptionMessage (kzString message) |
Stores exception message in per-thread data area. More... | |
KANZI_API kzsError | kzsErrorInitializeThread (kzMutableString *storage) |
Initializes error handling for thread. More... | |
KANZI_API kzsError | kzsErrorDeinitializeThread (void) |
De-initializes error handling for thread. More... | |
KANZI_API kzsError | kzsErrorInitialize (void) |
Initialize a global variable for error message storage. More... | |
KANZI_API kzsError | kzsErrorUninitialize (void) |
De-initialize a global variable for error message storage. More... | |
KANZI_API void | kzsErrorSetErrorCallback (KzsErrorCallback callback) |
Sets error callback. More... | |
KANZI_API void | kzsErrorSetExceptionCallback (KzsExceptionCallback callback) |
Sets exception callback. More... | |
KANZI_API kzString | kzsErrorGetLastErrorMessage () |
Gets last error message stored in a global buffer or empty string if there are no errors have being reported yet. More... | |
KANZI_API kzString | kzsErrorGetLastExceptionMessage () |
Gets the last exception message for the thread or empty string if there are no exceptions have being reported yet. More... | |
KANZI_API kzString | kzsErrorGetLastExceptionMessage (kzString fallbackMessage) |
Gets the last exception message for the thread. More... | |
KANZI_API kzsError | kzsErrorGetLastErrorCode () |
Gets last error code. More... | |
Error handling functions.
Copyright 2008-2017 by Rightware. All rights reserved.
#define KZS_EXCEPTION_MESSAGE_MAXIMUM_LENGTH |
Maximum length of exception.
#define KZS_SUCCESS |
Success code.
No error.
#define KZS_ERROR_ASSERTION_FAILED |
Assertion failed.
#define KZS_ERROR_NOT_IMPLEMENTED_YET |
Functionality is not yet implemented.
#define KZS_ERROR_ENUM_OUT_OF_RANGE |
Invalid value for enum.
#define KZS_ERROR_ILLEGAL_OPERATION |
Trying to perform illegal operation.
#define KZS_ERROR_ILLEGAL_ARGUMENT |
An argument was invalid for the given context.
#define KZS_ERROR_MALFORMED_DATA |
Data is malformed.
#define KZS_ERROR_ARRAY_OUT_OF_BOUNDS |
Trying to access array with invalid index.
#define KZS_ERROR_INVALID_STATE |
Program is in invalid state.
#define KZ_LOG_CATEGORY_LEGACY_EXCEPTIONS |
#define kzsSuccess | ( | ) |
Return from the function without any error code.
#define KZ_UNIQUE_NAME_INTERNAL | ( | name | ) |
#define KZ_APPEND_MESSAGE_TO_STRING_LOGGER_INTERNAL | ( | logger, | |
logMessage | |||
) |
#define KZ_REPORT_ERROR_INTERNAL | ( | new_error, | |
logMessage | |||
) |
#define KZ_REPORT_EXCEPTION_INTERNAL | ( | error, | |
logMessage | |||
) |
#define kzsErrorThrow | ( | new_error, | |
logMessage | |||
) |
Return from the function with the given error code.
#define kzsExceptionThrow | ( | new_exception, | |
logMessage | |||
) |
Return from the function with the given exception code.
#define kzsExceptionRethrow | ( | param_exception | ) |
Return from the function with the given exception code.
#define kzsErrorTest | ( | test, | |
new_error, | |||
logMessage | |||
) |
Return from the function with the given error code, if the test is false.
Otherwise continue.
#define kzsExceptionTest | ( | test, | |
new_exception, | |||
logMessage | |||
) |
Return from the function with the given exception code, if the test is false.
Otherwise continue.
#define kzsErrorForward | ( | error | ) |
Return from the function with the given error code, if it is one.
If the error code is an exception, the code may or may not return (use kzsExceptionForward instead).
#define kzsExceptionForward | ( | exception | ) |
Return from the function with the given exception or error code, if it is one.
Otherwise continue.
#define kzsExceptionForwardAsError | ( | exception, | |
new_error, | |||
logMessage | |||
) |
If the given exception code is an error, pass it forward.
If it is an exception, substitute it with the given error. Otherwise continue.
#define kzsErrorSubstitute | ( | error, | |
new_error, | |||
logMessage | |||
) |
Return from the function with the given new error code, if the given old code is also an error.
Otherwise continue.
#define kzsExceptionSubstitute | ( | error, | |
new_exception, | |||
logMessage | |||
) |
Return from the function with the given new exception code, if the given old code is also an exception.
Otherwise continue.
#define kzsErrorIf | ( | error | ) |
Test if the given error is an error.
#define kzsExceptionCatch | ( | exception, | |
exception_code | |||
) |
Test if the given exception matches the specified exception code.
#define kzsExceptionCatchAll | ( | exception | ) |
Test if the given exception is an actual exception and not success or error.
#define KZS_NOT_IMPLEMENTED_YET |
Macro to use to indicate that some code is not yet implemented.
#define KZS_NOT_IMPLEMENTED_YET_ERROR |
Macro to use to indicate and throw error that some code is not yet implemented.
#define KZS_NOT_IMPLEMENTED_YET_ERROR_TEXT | ( | message | ) |
Macro to use to indicate and throw error with an explanation, that some code is not yet implemented.
#define kzsErrorLog | ( | errorCode, | |
message | |||
) |
Logs the given error code with given message.
#define kzsExceptionLog | ( | errorCode, | |
message | |||
) |
Logs exception with given error code with given message.
typedef int kzsError |
Error code type definition.
typedef int kzsException |
Exception code type definition, extends error.
Callback that is triggered in error situations.
Callback that is triggered in exception situations.
Wrapper for kzsErrorThrow() to share more code.
Wrapper for kzsExceptionThrow() to share more code.
Stores error message in global storage area.
Stores exception message in per-thread data area.
KANZI_API kzsError kzsErrorInitializeThread | ( | kzMutableString * | storage | ) |
Initializes error handling for thread.
Initialize a global variable for error message storage.
De-initialize a global variable for error message storage.
KANZI_API void kzsErrorSetErrorCallback | ( | KzsErrorCallback | callback | ) |
Sets error callback.
KANZI_API void kzsErrorSetExceptionCallback | ( | KzsExceptionCallback | callback | ) |
Sets exception callback.
Gets last error message stored in a global buffer or empty string if there are no errors have being reported yet.
Gets the last exception message for the thread or empty string if there are no exceptions have being reported yet.
Gets the last exception message for the thread.
Returns fallbackMessage if are no exceptions have being reported yet.