要約
未定義のローカル変数や定数を使用したときに発生します。
例:
bar # => NameError: undefined local variable or method `bar' for main:Object
目次
- 特異メソッド
- インスタンスメソッド
継承しているメソッド
- Exceptionから継承しているメソッド
特異メソッド
new(error_message = "", name = nil) -> NameError
[permalink][rdoc][edit]new(error_message = "", name = nil, receiver:) -> NameError
-
例外オブジェクトを生成して返します。
- [PARAM] error_message:
- エラーメッセージを表す文字列です
- [PARAM] name:
- 未定義だったシンボルです
- [PARAM] receiver:
- 原因となったメソッド呼び出しのレシーバです
例:
err = NameError.new("message", "foo") p err # => #<NameError: message> p err.name # => "foo"
インスタンスメソッド
local_variables -> [Symbol]
[permalink][rdoc][edit]-
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][edit]-
この例外オブジェクトを発生させる原因となった変数や定数、メソッドの名前をシンボルで返します。
例:
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][edit]-
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][edit]-
例外オブジェクトを文字列に変換して返します。
例:
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