P99
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Defines | Functions
p99_try.h File Reference
#include "p99_constraint.h"
#include "p99_lifo.h"
+ Include dependency graph for p99_try.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define P99_CATCH(...)
 Designate a block that is executed regardless of the exceptions that were encountered in the corresponding try block.
#define P99_FINALLY
 Designate a block that is executed regardless of the exceptions that were encountered in the corresponding try block.
#define P99_RETHROW   p00_jmp_throw(p00_code, p00_unwind_top, 0, 0, 0)
 Stop execution at the current point inside a P99_FINALLY or P99_CATCH clause and propagate the same exception that led here to the next level.
#define P99_THROW(X)   p00_jmp_throw((X), p00_unwind_top, P99_STRINGIFY(__LINE__), __func__, "throw")
 Stop execution at the current point and signal an exception of value X to the next P99_TRY clause on the call stack, if any.
#define P99_THROW_CALL_NEG(F, E,...)   P00_THROW_CALL_NEG(F, E, __VA_ARGS__)
 Wrap a function call to F such that it throws an error on negative return.
#define P99_THROW_CALL_NEGATE(F, E,...)   P00_THROW_CALL_NEGATE(F, E, __VA_ARGS__)
 Wrap a function call to F such that it throws an error on negative return.
#define P99_THROW_CALL_RANGE(F,...)
 Wrap a function call to F such that it throws an error on failure.
#define P99_THROW_CALL_RANGE_ARG_0   permitted
#define P99_THROW_CALL_RANGE_ARG_1   permitted
#define P99_THROW_CALL_RANGE_ARG_2   permitted
#define P99_THROW_CALL_RANGE_ARG_3   permitted
#define P99_THROW_CALL_RANGE_ARG_4   permitted
#define P99_THROW_CALL_THRD(F,...)   p00_throw_call_thrd(F(__VA_ARGS__), p00_unwind_top, P99_STRINGIFY(__LINE__), __func__, #F ", no thrd_success")
 Wrap a "thread" function call to F such that it throws an error on failure.
#define P99_THROW_CALL_VOIDP(F, E,...)   P00_THROW_CALL_VOIDP(F, E, __VA_ARGS__)
 Wrap a function call to F such that it throws an error on invalid return.
#define P99_THROW_CALL_ZERO(F, E,...)   p00_throw_call_zero(F(__VA_ARGS__), E, p00_unwind_top, P99_STRINGIFY(__LINE__), __func__, #F ", non-zero return")
 Wrap a function call to F such that it throws an error on failure.
#define P99_THROW_ERRNO   p00_throw_errno(p00_unwind_top, EINVAL, P99_STRINGIFY(__LINE__), __func__, "THROW_ERRNO")
 Capture, clean and throw the current value of errno.
#define P99_TRY
 Create a block that can catch exceptions.

Functions

struct atomic_P99_PASTE2 (p00_lifo_, p00_jmp_buf0_ptr) p00_jmp_buf_top
 a thread local variable
void p99_jmp_report (errno_t p00_cond)
 Report the origin and cause of an error.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines