Exception: KeyError
- Inherits:
-
IndexError
- Object
- Exception
- StandardError
- IndexError
- KeyError
- Defined in:
- error.c,
error.c
Overview
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"
Instance Method Summary collapse
-
#new(message = nil, receiver: nil, key: nil) ⇒ Object
constructor
Construct a new
KeyError
exception with the given message, receiver and key. -
#key ⇒ Object
Return the key caused this KeyError exception.
-
#receiver ⇒ Object
Return the receiver associated with this KeyError exception.
Methods inherited from Exception
#==, #backtrace, #backtrace_locations, #cause, #detailed_message, #exception, exception, #full_message, #inspect, #message, #set_backtrace, #to_s, to_tty?
Constructor Details
#new(message = nil, receiver: nil, key: nil) ⇒ Object
Construct a new KeyError
exception with the given message, receiver and key.
2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 |
# File 'error.c', line 2843
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 (!UNDEF_P(values[i])) {
rb_ivar_set(self, keywords[i], values[i]);
}
}
}
return self;
}
|
Instance Method Details
#key ⇒ Object
Return the key caused this KeyError exception.
2814 2815 2816 2817 2818 2819 2820 2821 2822 |
# File 'error.c', line 2814
static VALUE
key_err_key(VALUE self)
{
VALUE key;
key = rb_ivar_lookup(self, id_key, Qundef);
if (!UNDEF_P(key)) return key;
rb_raise(rb_eArgError, "no key is available");
}
|
#receiver ⇒ Object
Return the receiver associated with this KeyError exception.
2797 2798 2799 2800 2801 2802 2803 2804 2805 |
# File 'error.c', line 2797
static VALUE
key_err_receiver(VALUE self)
{
VALUE recv;
recv = rb_ivar_lookup(self, id_receiver, Qundef);
if (!UNDEF_P(recv)) return recv;
rb_raise(rb_eArgError, "no receiver is available");
}
|