未定義のローカル変数や定数を使用したときに発生します。
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