定義されていないメソッドの呼び出しが行われたときに発生します。
例:
self.bar # => -:1: undefined method `bar' for #<Object:0x401a6c40> (NoMethodError)
プライベートなインスタンスメソッドを呼び出そうとした場合にも発生します。
例:
"".puts # => NoMethodError: private method `puts' called for "":String
メソッド呼び出しの形式でなければ NameError 例外が発生します。
例:
bar # => -:1: undefined local variable or method `bar' for #<Object:0x401a6c40> (NameError)
new(error_message = "", name = nil, args = nil, priv = false) -> NoMethodError[permalink][rdoc]例外オブジェクトを生成して返します。
例:
nom = NoMethodError.new("message", "foo", [1,2,3])
p nom.name
p nom.args
# => "foo"
[1, 2, 3]
args -> [object][permalink][rdoc]メソッド呼び出しに使われた引数を配列で返します。
例:
begin
  foobar(1,2,3)
rescue NoMethodError
  p $!
  p $!.name
  p $!.args
end
# => #<NoMethodError: undefined method `foobar' for main:Object>
     :foobar
     [1, 2, 3]
private_call? -> bool[permalink][rdoc]メソッド呼び出しが private なメソッドを呼び出せる形式 (関数形式(レシーバを省略した形式)) で呼ばれたかどうかを返します。