Defines | |
#define | exn_try (if (exn_function_try())) |
Wrapper for exn_function_try. | |
#define | exn_catch (th) (if ( th = exn_function_catch())) |
Wrapper for exn_function_catch. | |
#define | ASSERT_THROW_AREA assert(is_unwindable()); |
#define | ASSERT_RAISE_AREA assert(!is_unwindable()); |
#define | BEGIN_RAISE_AREA |
#define | END_RAISE_AREA |
Functions | |
VMEXPORT jthrowable | exn_get () |
Returns the thread-local exception object or NULL if no exception occured. | |
VMEXPORT Class * | exn_get_class () |
VMEXPORT const char * | exn_get_name () |
VMEXPORT bool | exn_raised () |
Returns true if the thread-local exception object is set. | |
VMEXPORT void | exn_clear () |
Clears the thread-local exception object. | |
jthrowable | exn_create (Exception *exception) |
Creates exception object. | |
jthrowable | exn_create (Class *exc_class) |
jthrowable | exn_create (Class *exc_class, jthrowable cause) |
jthrowable | exn_create (Class *exc_class, const char *message) |
jthrowable | exn_create (Class *exc_class, const char *message, jthrowable cause) |
VMEXPORT jthrowable | exn_create (const char *exc_name) |
Creates exception object. | |
VMEXPORT jthrowable | exn_create (const char *exc_name, jthrowable cause) |
Creates exception object. | |
VMEXPORT jthrowable | exn_create (const char *exc_name, const char *message) |
Creates exception object. | |
VMEXPORT jthrowable | exn_create (const char *exc_name, const char *message, jthrowable cause) |
Creates exception object. | |
VMEXPORT bool | is_unwindable () |
Returns true if frame is unwindable and false if isn't. | |
bool | set_unwindable (bool unwindable) |
Sets unwindable property of frame. | |
void | exn_throw_object (jthrowable exc_object) |
Throws an exception object. | |
void | exn_throw_by_class (Class *exc_class) |
Throws an exceptionas lazy. | |
void | exn_throw_by_class (Class *exc_class, jthrowable exc_cause) |
void | exn_throw_by_class (Class *exc_class, const char *exc_message) |
void | exn_throw_by_class (Class *exc_class, const char *exc_message, jthrowable exc_cause) |
VMEXPORT void | exn_throw_by_name (const char *exception_name) |
Throws an exceptionas lazy. | |
VMEXPORT void | exn_throw_by_name (const char *exception_name, jthrowable cause) |
Throws an exceptionas lazy. | |
VMEXPORT void | exn_throw_by_name (const char *exception_name, const char *message) |
Throws an exceptionas lazy. | |
VMEXPORT void | exn_throw_by_name (const char *exception_name, const char *message, jthrowable cause) |
Throws an exceptionas lazy. | |
VMEXPORT void | exn_raise_object (jthrowable exc_object) |
Sets exceptions as a thread local exception. | |
void | exn_raise_by_class (Class *exc_class) |
Sets exception lazy as a thread local exception. | |
void | exn_raise_by_class (Class *exc_class, jthrowable exc_cause) |
void | exn_raise_by_class (Class *exc_class, const char *exc_message) |
void | exn_raise_by_class (Class *exc_class, const char *exc_message, jthrowable exc_cause) |
VMEXPORT void | exn_raise_by_name (const char *exception_name) |
Sets exception lazy as a thread local exception. | |
VMEXPORT void | exn_raise_by_name (const char *exception_name, jthrowable exc_cause) |
Sets exception lazy as a thread local exception. | |
VMEXPORT void | exn_raise_by_name (const char *exception_name, const char *message) |
Sets exception lazy as a thread local exception. | |
VMEXPORT void | exn_raise_by_name (const char *exception_name, const char *message, jthrowable exc_cause) |
Sets exception lazy as a thread local exception. | |
bool | exn_function_try () |
Pushes dummy non-unwindable stack frame in order to prevent stack unwinding. | |
jthrowable | exn_function_catch () |
pops dummy non-unwindable stack frame | |
void | exn_print_stack_trace (FILE *f, jthrowable exc) |
void | print_uncaught_exception_message (FILE *f, char *context_message, jthrowable exc) |
void | exn_rethrow () |
void | exn_rethrow_if_pending () |
bool | set_guard_stack () |
void | remove_guard_stack (vm_thread_t vm_thread) |
void | init_stack_info () |
void * | get_exception_catch_stack_addr (void *curr_ip) |
VMEXPORT size_t | get_available_stack_size () |
VMEXPORT bool | check_available_stack_size (size_t required_size) |
VMEXPORT size_t | get_default_stack_size () |
VMEXPORT size_t | get_restore_stack_size () |
bool | check_stack_size_enough_for_exception_catch (void *sp) |
#define exn_try (if (exn_function_try())) |
Wrapper for exn_function_try.
#define exn_catch (th) (if ( th = exn_function_catch())) |
Wrapper for exn_function_catch.
#define ASSERT_THROW_AREA assert(is_unwindable()); |
#define ASSERT_RAISE_AREA assert(!is_unwindable()); |
#define BEGIN_RAISE_AREA |
Value:
{ \ bool unwindable = set_unwindable(false);\ if (unwindable) exn_rethrow_if_pending();
#define END_RAISE_AREA |
Value:
if (unwindable) exn_rethrow_if_pending();\ set_unwindable(unwindable);\ }
VMEXPORT jthrowable exn_get | ( | ) |
Returns the thread-local exception object or NULL if no exception occured.
VMEXPORT Class* exn_get_class | ( | ) |
VMEXPORT const char* exn_get_name | ( | ) |
VMEXPORT bool exn_raised | ( | ) |
Returns true if the thread-local exception object is set.
VMEXPORT void exn_clear | ( | ) |
Clears the thread-local exception object.
jthrowable exn_create | ( | Exception * | exception | ) |
Creates exception object.
jthrowable exn_create | ( | Class * | exc_class | ) |
jthrowable exn_create | ( | Class * | exc_class, | |
jthrowable | cause | |||
) |
jthrowable exn_create | ( | Class * | exc_class, | |
const char * | message | |||
) |
jthrowable exn_create | ( | Class * | exc_class, | |
const char * | message, | |||
jthrowable | cause | |||
) |
VMEXPORT jthrowable exn_create | ( | const char * | exc_name | ) |
Creates exception object.
VMEXPORT jthrowable exn_create | ( | const char * | exc_name, | |
jthrowable | cause | |||
) |
Creates exception object.
VMEXPORT jthrowable exn_create | ( | const char * | exc_name, | |
const char * | message | |||
) |
Creates exception object.
VMEXPORT jthrowable exn_create | ( | const char * | exc_name, | |
const char * | message, | |||
jthrowable | cause | |||
) |
Creates exception object.
VMEXPORT bool is_unwindable | ( | ) |
Returns true if frame is unwindable and false if isn't.
bool set_unwindable | ( | bool | unwindable | ) |
Sets unwindable property of frame.
If frame is unwindable property should be true and should be false if frame isn't unwindable. Returns previous value of unwindable property.
void exn_throw_object | ( | jthrowable | exc_object | ) |
Throws an exception object.
void exn_throw_by_class | ( | Class * | exc_class | ) |
Throws an exceptionas lazy.
Does not return in case of destructive exception propagation.
void exn_throw_by_class | ( | Class * | exc_class, | |
jthrowable | exc_cause | |||
) |
void exn_throw_by_class | ( | Class * | exc_class, | |
const char * | exc_message | |||
) |
void exn_throw_by_class | ( | Class * | exc_class, | |
const char * | exc_message, | |||
jthrowable | exc_cause | |||
) |
VMEXPORT void exn_throw_by_name | ( | const char * | exception_name | ) |
Throws an exceptionas lazy.
Does not return in case of destructive exception propagation.
VMEXPORT void exn_throw_by_name | ( | const char * | exception_name, | |
jthrowable | cause | |||
) |
Throws an exceptionas lazy.
Does not return in case of destructive exception propagation.
VMEXPORT void exn_throw_by_name | ( | const char * | exception_name, | |
const char * | message | |||
) |
Throws an exceptionas lazy.
Does not return in case of destructive exception propagation.
VMEXPORT void exn_throw_by_name | ( | const char * | exception_name, | |
const char * | message, | |||
jthrowable | cause | |||
) |
Throws an exceptionas lazy.
Does not return in case of destructive exception propagation.
VMEXPORT void exn_raise_object | ( | jthrowable | exc_object | ) |
Sets exceptions as a thread local exception.
void exn_raise_by_class | ( | Class * | exc_class | ) |
Sets exception lazy as a thread local exception.
explicit non-destructive semantics should be deduced from context.
void exn_raise_by_class | ( | Class * | exc_class, | |
jthrowable | exc_cause | |||
) |
void exn_raise_by_class | ( | Class * | exc_class, | |
const char * | exc_message | |||
) |
void exn_raise_by_class | ( | Class * | exc_class, | |
const char * | exc_message, | |||
jthrowable | exc_cause | |||
) |
VMEXPORT void exn_raise_by_name | ( | const char * | exception_name | ) |
Sets exception lazy as a thread local exception.
VMEXPORT void exn_raise_by_name | ( | const char * | exception_name, | |
jthrowable | exc_cause | |||
) |
Sets exception lazy as a thread local exception.
VMEXPORT void exn_raise_by_name | ( | const char * | exception_name, | |
const char * | message | |||
) |
Sets exception lazy as a thread local exception.
VMEXPORT void exn_raise_by_name | ( | const char * | exception_name, | |
const char * | message, | |||
jthrowable | exc_cause | |||
) |
Sets exception lazy as a thread local exception.
bool exn_function_try | ( | ) |
Pushes dummy non-unwindable stack frame in order to prevent stack unwinding.
After this returns true. If unwinding is happnened control coming back into this function, and after this it returns false.
jthrowable exn_function_catch | ( | ) |
pops dummy non-unwindable stack frame
returns the current thread exception object or NULL if no exception occured.
void exn_print_stack_trace | ( | FILE * | f, | |
jthrowable | exc | |||
) |
void print_uncaught_exception_message | ( | FILE * | f, | |
char * | context_message, | |||
jthrowable | exc | |||
) |
void exn_rethrow | ( | ) |
void exn_rethrow_if_pending | ( | ) |
bool set_guard_stack | ( | ) |
void remove_guard_stack | ( | vm_thread_t | vm_thread | ) |
void init_stack_info | ( | ) |
void* get_exception_catch_stack_addr | ( | void * | curr_ip | ) |
VMEXPORT size_t get_available_stack_size | ( | ) |
VMEXPORT bool check_available_stack_size | ( | size_t | required_size | ) |
VMEXPORT size_t get_default_stack_size | ( | ) |
VMEXPORT size_t get_restore_stack_size | ( | ) |
bool check_stack_size_enough_for_exception_catch | ( | void * | sp | ) |
Genereated on Tue Mar 11 19:25:56 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.