210ae3449d7acd389d1500df95c3a11bd754202d
[mruby.git] / include / mruby / error.h
blob210ae3449d7acd389d1500df95c3a11bd754202d
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;
19 #define mrb_exc_ptr(v) ((struct RException*)mrb_ptr(v))
21 void mrb_sys_fail(mrb_state *mrb, const char *mesg);
22 mrb_value mrb_exc_new_str(mrb_state *mrb, struct RClass* c, mrb_value str);
23 #define mrb_exc_new_str_lit(mrb, c, lit) mrb_exc_new_str(mrb, c, mrb_str_new_lit(mrb, lit))
24 mrb_value mrb_make_exception(mrb_state *mrb, int argc, const mrb_value *argv);
25 void mrb_exc_print(mrb_state *mrb, struct RObject *exc);
26 void mrb_print_backtrace(mrb_state *mrb);
27 mrb_value mrb_exc_backtrace(mrb_state *mrb, mrb_value exc);
28 mrb_value mrb_get_backtrace(mrb_state *mrb);
29 mrb_noreturn void mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_int argc, const mrb_value *argv, const char *fmt, ...);
31 /* declaration for fail method */
32 mrb_value mrb_f_raise(mrb_state*, mrb_value);
34 #if defined(__cplusplus)
35 } /* extern "C" { */
36 #endif
38 #endif /* MRUBY_ERROR_H */