Exception: KeyError
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: | |
| Instance Chain: | |
| Inherits: | IndexError 
 | 
| Defined in: | error.c, error.c | 
Overview
Raised when the specified key is not found. It is a subclass of ::IndexError.
h = {"foo" => :}
h.fetch("foo") #=> :bar
h.fetch("baz") #=> KeyError: key not found: "baz"Class Attribute Summary
::Exception - Inherited
| .to_tty? | Returns  | 
Class Method Summary
- 
    
      .new(message = nil, receiver: nil, key: nil)  ⇒ key_error 
    
    constructor
    Construct a new KeyErrorexception with the given message, receiver and key.
::Exception - Inherited
| .exception | With no argument, or if the argument is the same as the receiver, return the receiver. | 
| .new | Construct a new  | 
Instance Method Summary
- 
    
      #key  ⇒ Object 
    
    Return the key caused this KeyErrorexception.
- 
    
      #receiver  ⇒ Object 
    
    Return the receiver associated with this KeyErrorexception.
::Exception - Inherited
| #== | Equality—If obj is not an  | 
| #backtrace | Returns any backtrace associated with the exception. | 
| #backtrace_locations | Returns any backtrace associated with the exception. | 
| #cause | Returns the previous exception ($!) at the time this exception was raised. | 
| #exception | With no argument, or if the argument is the same as the receiver, return the receiver. | 
| #full_message | Returns formatted string of exception. | 
| #inspect | Return this exception’s class name and message. | 
| #message | Returns the result of invoking  | 
| #set_backtrace | Sets the backtrace information associated with  | 
| #to_s | Returns exception’s message (or the name of the exception if no message is set). | 
Constructor Details
    .new(message = nil, receiver: nil, key: nil)  ⇒ key_error   
Construct a new KeyError exception with the given message, receiver and key.
# File 'error.c', line 2143
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;
}
  Instance Method Details
#key ⇒ Object
Return the key caused this KeyError exception.
# File 'error.c', line 2114
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
Return the receiver associated with this KeyError exception.
# File 'error.c', line 2097
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");
}