NAME
src/pmc/exception.pmc - Exception PMC
DESCRIPTION
This is the exception base class. An exception object has the following attributes:
- messageTextual representation of the exception.
- severityThe severity of the exception,
(see include/parrot/exceptions.h,
except_severity.pasm).
- typeThe type of the exception.
- exit_codeThe exit code of the exception.
(Added temporarily,
to be removed.)
- handledWhether the exception has been handled.
Defaults to 0,
1 for handled,
-1 for a rethrown exception.
- payloadAdditional data for the exception.
When an exception handler is called,
the exception object is passed as as the first argument,
the message as the second argument of the call.
These arguments can be retrieved with the get_results opcode.
Vtable Functions
- void init()Initializes the exception with default values.
- void init_pmc()Initializes the exception with supplied values.
- void mark()Mark any active exception data as live.
- INTVAL get_bool()Return true.
- STRING *get_string()Return the exception message.
- INTVAL get_integer()Returns the id of the exception.
- STRING *get_string_keyed(PMC *key)Returns the Parrot string value for
- INTVAL get_integer_keyed(PMC *key)Returns the integer value for
- INTVAL get_integer_keyed_str(STRING *key)Returns the integer value for
- PMC *get_pmc_keyed(PMC *key)Returns the PMC value for
- void set_string_native(STRING *value)Sets the
- void set_integer_native(INTVAL *value)Sets the
- void set_number_native(FLOATVAL value)Sets the birthtime of the exception.
- void set_string_keyed(PMC *key, STRING *value)Sets the Parrot string value for
- void set_integer_keyed(PMC *key, INTVAL value)Sets the integer value for
- void set_integer_keyed_str(STRING *key, INTVAL value)Sets the integer value for
- void set_pmc_keyed(PMC *key, PMC *value)Sets the PMC value for
- void set_pointer(void *context)Store a context for the handler iterator.
- void *get_pointer()Retrieve a context stored for the handler iterator.
- INTVAL is_equal(PMC *value)Compare the passed in Exception with
- get_attr_strRetrieve an attribute value for the exception object.
- set_attr_strSet an attribute value for the exception object.
- PMC *share_ro()Set this PMC as shared.
- PMC *annotationsGets any bytecode annotations in force at the point where the exception was thrown.
If the optional name of an annotation is specified,
gets just that annotation.
If not,
returns a Hash of all of them.
- PMC *backtraceGets a representation of the backtrace at the point that this exception was thrown.
Returns an array of hashes.
Each array element represents a caller in the backtrace,
the most recent caller first.
The hash has two keys:
*key.
The only current recognized key is "message".
*key.
*key.
*key.
message of the Exception.
id of the Exception.
*key.
*key.
*key.
*key.
SELF.
Returns true if SELF and value are the same type,
and have the same values for type,
severity,
and exit_code.
sub,
which holds the PMC representing the sub,
and annotations which is a hash of the annotations at the point where the exception was thrown for the current sub,
or for the point of the call a level deeper for the rest.