若使用未定义的变量或常数时就会触发该异常.
NameError.new(error_message[, name]) ((<ruby 1.8 特性>))生成并返回异常对象. name是未定义的符号.
err = NameError.new("message", "foo")
p err
p err.name
# => #<NameError: message>
"foo"
NameError#name返回未定义的符号.
begin
foobar
rescue NameError
p $!
p $!.name
end
# => #<NameError: undefined local variable or method `foobar' for main:Object>
:foobar