class FrozenError
当尝试修改一个冻结对象时引发此异常。
[1, 2, 3].freeze << 4
抛出异常
FrozenError: can't modify frozen Array
公共类方法
new(msg=nil, receiver: nil) → frozen_error 点击切换源代码
构造一个新的 FrozenError 异常。如果给定 receiver 参数,则随后可以使用 FrozenError#receiver 方法检查该参数。
a = [].freeze raise FrozenError.new("can't modify frozen array", receiver: a)
static VALUE
frozen_err_initialize(int argc, VALUE *argv, VALUE self)
{
ID keywords[1];
VALUE values[numberof(keywords)], options;
argc = rb_scan_args(argc, argv, "*:", NULL, &options);
keywords[0] = id_receiver;
rb_get_kwargs(options, keywords, 0, numberof(values), values);
rb_call_super(argc, argv);
err_init_recv(self, values[0]);
return self;
}
公共实例方法
receiver → object 点击切换源代码
返回与此 FrozenError 异常关联的接收者。
#define frozen_err_receiver name_err_receiver