Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > NameErrorクラス

class NameError

クラスの継承リスト: NameError < StandardError < Exception < Object < Kernel < BasicObject

要約

未定義のローカル変数や定数を使用したときに発生します。

例:

bar
# => NameError: undefined local variable or method `bar' for main:Object

目次

特異メソッド
new
インスタンスメソッド
local_variables name receiver to_s

特異メソッド

new(error_message = "", name = nil) -> NameError[permalink][rdoc]

例外オブジェクトを生成して返します。

[PARAM] error_message:
エラーメッセージを表す文字列です
[PARAM] name:
未定義だったシンボルです

例:

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