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.
|