NAME

src/pmc/exceptionhandler.pmc - Exception Handler PMC

DESCRIPTION

When an exception handler is called, the exception object is passed as REG_PMC(interp, 5), the original contents of this register is in the exception object's _P5 attribute.

Methods

void init()
Initializes the exception handler.
void init_int(INTVAL)
Initializes the exception handler with one handled type.
void init_pmc(PMC)
Initializes the exception handler with one handled type. If the argument is a key, intitialize it with the key contents.
void mark()
Mark any active exception handler data as live.
void set_integer_native(INTVAL)
Mark whether the handler has been invoked.
INTVAL get_integer()
Check whether the handler has been invoked.
opcode_t *invoke(void *next)
Set up the environment for the exception handler to be invoked.

Methods

METHOD can_handle(PMC *exception)
Report whether the exception handler can handle a particular type of exception.
METHOD min_severity(INTVAL severity :optional, INTVAL have_severity :opt_flag)
Set or get the minimum severity of the exception handler.
METHOD max_severity(INTVAL severity :optional, INTVAL have_severity :opt_flag)
Set or get the maximum severity of the exception handler.
METHOD handle_types(PMC *types :slurpy)
Set the exception types that the ExceptionHandler will handle.
METHOD handle_types_except(PMC *types :slurpy)
Set the exception types that the ExceptionHandler will not handle.