未定義のローカル変数や定数を使用したときに発生します。
NameError.new(error_message[, name]) ((<ruby 1.8 feature>))例外オブジェクトを生成して返します。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