In Files

  • error.c

Parent

IndexError

Methods

Class/Module Index [+]

Quicksearch
No matching classes.

KeyError

Raised when the specified key is not found. It is a subclass of IndexError.

h = {"foo" => :bar}
h.fetch("foo") #=> :bar
h.fetch("baz") #=> KeyError: key not found: "baz"

Public Class Methods

new(message=nil, receiver: nil, key: nil) → key_error click to toggle source

Construct a new KeyError exception with the given message, receiver and key.

 
 static VALUE
key_err_initialize(int argc, VALUE *argv, VALUE self)
{
 VALUE options;
 rb_call_super(rb_scan_args(argc, argv, "01:", NULL, &options), argv);
 if (!NIL_P(options)) {
 ID keywords[2];
 VALUE values[numberof(keywords)];
 int i;
 keywords[0] = id_receiver;
 keywords[1] = id_key;
 rb_get_kwargs(options, keywords, 0, numberof(values), values);
 for (i = 0; i < numberof(values); ++i) {
 if (values[i] != Qundef) {
 rb_ivar_set(self, keywords[i], values[i]);
 }
 }
 }
 return self;
}
 

Public Instance Methods

key → object click to toggle source

Return the key caused this KeyError exception.

 
 static VALUE
key_err_key(VALUE self)
{
 VALUE key;
 key = rb_ivar_lookup(self, id_key, Qundef);
 if (key != Qundef) return key;
 rb_raise(rb_eArgError, "no key is available");
}
 
receiver → object click to toggle source

Return the receiver associated with this KeyError exception.

 
 static VALUE
key_err_receiver(VALUE self)
{
 VALUE recv;
 recv = rb_ivar_lookup(self, id_receiver, Qundef);
 if (recv != Qundef) return recv;
 rb_raise(rb_eArgError, "no receiver is available");
}
 

AltStyle によって変換されたページ (->オリジナル) /