UncaughtThrowError 类
当使用没有对应 catch
块的标签调用 throw
时引发。
throw "foo", "bar"
引发异常
UncaughtThrowError: uncaught throw "foo"
公共类方法
new(*args) 点击切换源代码
文档类: UncaughtThrowError
当使用没有对应 catch
块的标签调用 throw
时引发。
throw "foo", "bar"
引发异常
UncaughtThrowError: uncaught throw "foo"
static VALUE uncaught_throw_init(int argc, const VALUE *argv, VALUE exc) { rb_check_arity(argc, 2, UNLIMITED_ARGUMENTS); rb_call_super(argc - 2, argv + 2); rb_ivar_set(exc, id_tag, argv[0]); rb_ivar_set(exc, id_value, argv[1]); return exc; }
公共实例方法
tag → obj 点击切换源代码
返回调用的标签对象。
static VALUE uncaught_throw_tag(VALUE exc) { return rb_ivar_get(exc, id_tag); }
to_s → string 点击切换源代码
返回带有检查标签的格式化消息。
static VALUE uncaught_throw_to_s(VALUE exc) { VALUE mesg = rb_attr_get(exc, id_mesg); VALUE tag = uncaught_throw_tag(exc); return rb_str_format(1, &tag, mesg); }
value → obj 点击切换源代码
返回调用的返回值。
static VALUE uncaught_throw_value(VALUE exc) { return rb_ivar_get(exc, id_value); }