#include <setjmp.h>
Go to the source code of this file.
Data Structures | |
| struct | exception_context |
Defines | |
| #define | define_exception_type(etype) |
| #define | init_exception_context(ec) ((void)((ec)->last = 0)) |
| #define | Catch(e) exception__catch(&(e)) |
| #define | Catch_anonymous exception__catch(0) |
| #define | Try |
| #define | exception__catch(e_addr) |
| #define | Throw |
|
|
|
|
|
|
|
|
Value: struct exception__state { \
etype *exception; \
jmp_buf env; \
}
|
|
|
Value: else { } \ the_exception_context->caught = 0; \ } \ else the_exception_context->caught = 1; \ the_exception_context->last = exception__p; \ break; \ } \ else exception__s.exception = e_addr; \ } \ if (!the_exception_context->caught) { } \ else |
|
|
|
|
|
Value: for (;; longjmp(the_exception_context->last->env, 1)) \ if (the_exception_context->last->exception) \ *the_exception_context->last->exception = |
|
|
Value: { \
struct exception__state *exception__p, exception__s; \
int exception__i; \
exception__p = the_exception_context->last; \
the_exception_context->last = &exception__s; \
for (exception__i = 0; ; exception__i = 1) \
if (exception__i) { \
if (setjmp(exception__s.env) == 0) { \
if (&exception__s)
|
1.3.4