errors/key_error/named_arguments.rb

tests/_examples/errors/key_error/named_arguments.rb in the metorex repository.

error = KeyError.new receiver: "lookup source", key: :b
p error.receiver
p error.key
puts error.message

described = KeyError.new "key not found: :b", receiver: "lookup source", key: :b
puts described.message
p described.key

plain = KeyError.new "no lookup recorded"
begin
  plain.key
rescue ArgumentError => error
  puts error.message
end
begin
  plain.receiver
rescue ArgumentError => error
  puts error.message
end

frozen = FrozenError.new "can't modify", receiver: "text"
p frozen.receiver
puts frozen.message

Output:

"lookup source"
:b
KeyError
key not found: :b
:b
no key is available
no receiver is available
"text"
can't modify