void exn_raise_by_class(Class* exc_class, const char* exc_message, jthrowable exc_cause) { assert(!is_unwindable()); assert(exc_class); exn_raise_by_class_internal(exc_class, exc_message, exc_cause); }
void exn_throw_by_name(const char* exc_name, const char* exc_message, jthrowable exc_cause) { assert(is_unwindable()); exn_throw_by_name_internal(exc_name, exc_message, exc_cause); }
void exn_raise_by_name(const char* exc_name, const char* exc_message, jthrowable exc_cause) { assert(hythread_is_suspend_enabled()); assert(!is_unwindable()); assert(exc_name); exn_raise_by_name_internal(exc_name, exc_message, exc_cause); }
IDATA jthread_throw_exception_object(jobject object) { if (interpreter_enabled()) { // FIXME - Function set_current_thread_exception does the same // actions as exn_raise_object, and it should be replaced. hythread_suspend_disable(); set_current_thread_exception(object->object); hythread_suspend_enable(); } else { if (is_unwindable()) { exn_throw_object(object); } else { ASSERT_RAISE_AREA; exn_raise_object(object); } } return 0; }
void exn_raise_object(jthrowable exc_object) { assert(!is_unwindable()); assert(exc_object); exn_raise_object_internal(exc_object); }
void exn_throw_object(jthrowable exc_object) { assert(is_unwindable()); exn_throw_object_internal(exc_object); }