11#define META_FILE_NAME "MkExceptionC_rb.c"
17static VALUE
MK(MkExceptionC);
18static ID
MK(id_Catch);
43void MK(MkExceptionC_Raise) (
58 VALUE errO = rb_class_new_instance(2,args,
MK(MkExceptionC));
73 if (exception == NULL) exception = (
MK_EXP) rb_errinfo();
74 VALUE ex = (VALUE) exception;
76 if (rb_obj_is_kind_of(ex,
MK(MkExceptionC)) == Qtrue) {
77 static ID id_mkerr = 0;
78 if (!id_mkerr) id_mkerr = rb_intern(
"mkerr");
82 }
else if (rb_obj_is_kind_of(ex, rb_eStandardError) == Qtrue) {
88 argv[3] = stop == NULL ? Qnil :
STRN2VAL(stop);
90 rb_funcallv(
MK(MkExceptionC),
MK(id_Catch), 4, argv);
92 }
else if (rb_obj_is_kind_of(ex, rb_eSystemExit) == Qtrue) {
96 MkLogV_2X(err,
"WARNING: re-raise exception (long-jump in code) → %s\n",
114 #include "MkExceptionC.tpl"
119 MK(id_Catch) = rb_intern(
"Catch");
#define OT_TMP_ERR_OBJ(val)
static const char MkExceptionC_code[]
struct MkErrorS * MK_ERR
class-shortcut for struct MkErrorS *, all shortcut using the XX_YYY syntax (only for public API) …
static bool MkErrCheck(MK_MNGN mng)
check MkErrorS -> MkObjectS::signature …
#define MkErrorGetTextI(e)
get the MkErrorS::text …
#define MkErrorReset_1(err)
#define MkErrorStackFormat(...)
#define MkErrorSetEXIT(...)
#define MkErrorFORMAT_1M(m)
const MK_PTRB * MK_MNGN
const - a managed object pointer, datatype will be checked at runtime
const MK_STRB * MK_STRN
constant string pointer data-type
MK_PTRB * MK_MNG
managed object pointer, datatype will be checked at runtime
MK_PTRB const * MK_EXP
exception object pointer
signed int MK_I32
4 byte integer data-type
#define MkLogV_2X(x, printfmt,...)
The data-type to store and handle the error-condition …