errors/name_error/construction.rb
tests/_examples/errors/name_error/construction.rb in the metorex repository.
named = NameError.new "msg", "name"
puts named.message
p named.name
begin
named.receiver
rescue ArgumentError => error
puts error.message
end
symbol_named = NameError.new "msg", :name, receiver: "the receiver"
p symbol_named.name
p symbol_named.receiver
plain = NameError.new "just a message"
puts plain.message
p plain.name
class Caller
def trigger
missing_helper
rescue NameError => error
error
end
end
caught = Caller.new.trigger
p caught.name
p caught.receiver.class.to_s
copied = caught.dup
p copied.name
p copied.receiver.class.to_s
Output:
msg
"name"
no receiver is available
:name
"the receiver"
just a message
nil
:missing_helper
"Caller"
:missing_helper
"Caller"