未定義のローカル変数や定数を使用したときに発生します。
例:
bar # => NameError: undefined local variable or method `bar' for main:Object
new(error_message = "", name = nil) -> NameError
[permalink][rdoc]例外オブジェクトを生成して返します。
例:
err = NameError.new("message", "foo") p err # => #<NameError: message> p err.name # => "foo"
local_variables -> [Symbol]
[permalink][rdoc]self が発生した時に定義されていたローカル変数名の一覧を返します。
内部での使用に限ります。
例:
def foo begin b = "bar" c = 123 d rescue NameError => err p err.local_variables #=> [:b, :c, :err] end end a = "buz" foo
name -> Symbol
[permalink][rdoc]この例外オブジェクトを発生させる原因となった変数や定数、メソッドの名前をシンボルで返します。
例:
begin foobar rescue NameError => err p err # => #<NameError: undefined local variable or method `foobar' for main:Object> p err.name # => :foobar end
receiver -> object
[permalink][rdoc]self が発生した時のレシーバオブジェクトを返します。
例:
class Sample def foo return "foo" end end bar = Sample.new begin bar.bar rescue NameError => err p err.receiver # => #<Sample:0x007fd4d89b3110> p err.receiver.foo # => "foo" end
to_s -> String
[permalink][rdoc]例外オブジェクトを文字列に変換して返します。
例:
begin foobar rescue NameError => err p err # => #<NameError: undefined local variable or method `foobar' for main:Object> p err.to_s # => "undefined local variable or method `foobar' for main:Object" end