coan 4.2.4
The Exception component

Files

file  exception.c
file  exception.h

Defines

#define catch()   setjmp(exception_context)
#define throw(x)   longjmp(exception_context,(x))

Variables

jmp_buf exception_context
bool exceptions_enabled

Detailed Description

This component provides a very rudimentary exception handling facility using setjmp() and longjmp(). Exceptions are integer error codes. Throwing an exception can return execution to a point prior to the occurrence of the exception, where by testing the exception it can take an alternative course. It is not possible to re-throw an exception.


Define Documentation

#define catch ( )    setjmp(exception_context)

Catch an exception. The macro returns 0 if no exception was thrown, else the integer exception.

Definition at line 63 of file exception.h.

#define throw (   x)    longjmp(exception_context,(x))

Throw an exception. The function causes control to pass to the site of the last call to catch(), which will then return the value exception

Definition at line 70 of file exception.h.


Variable Documentation

The execution context to which exceptions return.

Definition at line 44 of file exception.c.

Status of exception handling, enabled/disabled

Definition at line 46 of file exception.c.

Referenced by node_proc(), and vbail().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines