summaryrefslogtreecommitdiffhomepage
path: root/src/error.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-06-03 16:34:21 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-06-03 16:34:21 +0900
commit427ea605e7408fd2ed3b5c97d701c660b8028788 (patch)
tree1914f4d72a56d6ba8969879d3bfcadb1bbb71907 /src/error.c
parentb81f0d0ffb7db46507f7b79ccb72cc94428555ce (diff)
parent037a1d70880ecdcfd2d55eb10c234de1001eb654 (diff)
downloadmruby-427ea605e7408fd2ed3b5c97d701c660b8028788.tar.gz
mruby-427ea605e7408fd2ed3b5c97d701c660b8028788.zip
Merge branch 'master' of github.com:mruby/mruby
Diffstat (limited to 'src/error.c')
-rw-r--r--src/error.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/error.c b/src/error.c
index 360df8f2e..c60fff10d 100644
--- a/src/error.c
+++ b/src/error.c
@@ -442,6 +442,20 @@ mrb_sys_fail(mrb_state *mrb, const char *mesg)
}
}
+mrb_noreturn void
+mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_int argc, const mrb_value *argv, char const* fmt, ...)
+{
+ mrb_value exc;
+ va_list ap;
+
+ va_start(ap, fmt);
+ exc = mrb_funcall(mrb, mrb_obj_value(E_NOMETHOD_ERROR), "new", 3,
+ mrb_vformat(mrb, fmt, ap), mrb_symbol_value(id),
+ mrb_ary_new_from_values(mrb, argc, argv));
+ va_end(ap);
+ mrb_exc_raise(mrb, exc);
+}
+
void
mrb_init_exception(mrb_state *mrb)
{