8b5e9dd376e7e5d2912434a196706296dd6150d5
[mruby.git] / include / mruby / error.h
blob8b5e9dd376e7e5d2912434a196706296dd6150d5
1 /*
2 ** error.h - Exception class
3 **
4 ** See Copyright Notice in mruby.h
5 */
7 #ifndef MRUBY_ERROR_H
8 #define MRUBY_ERROR_H
10 #if defined(__cplusplus)
11 extern "C" {
12 #endif
14 struct RException {
15 MRB_OBJECT_HEADER;
16 struct iv_tbl *iv;
17 mrb_value mesg;
20 #define mrb_exc_ptr(v) ((struct RException*)mrb_ptr(v))
21 #define MRB_EXC_MESG_INIT_FLAG 0x100
23 void mrb_sys_fail(mrb_state *mrb, const char *mesg);
24 mrb_value mrb_exc_new_str(mrb_state *mrb, struct RClass* c, mrb_value str);
25 #define mrb_exc_new_str_lit(mrb, c, lit) mrb_exc_new_str(mrb, c, mrb_str_new_lit(mrb, lit))
26 mrb_value mrb_make_exception(mrb_state *mrb, int argc, const mrb_value *argv);
27 void mrb_exc_print(mrb_state *mrb, struct RObject *exc);
28 void mrb_print_backtrace(mrb_state *mrb);
29 mrb_value mrb_exc_backtrace(mrb_state *mrb, mrb_value exc);
30 mrb_value mrb_get_backtrace(mrb_state *mrb);
31 mrb_noreturn void mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_int argc, const mrb_value *argv, const char *fmt, ...);
33 /* declaration for fail method */
34 mrb_value mrb_f_raise(mrb_state*, mrb_value);
36 #if defined(__cplusplus)
37 } /* extern "C" { */
38 #endif
40 #endif /* MRUBY_ERROR_H */