要約
定義されていないメソッドの呼び出しが行われたときに発生します。
例self.bar
# => -:1: undefined method 'bar' for main (NoMethodError)
プライベートなインスタンスメソッドを呼び出そうとした場合にも発生します。
例"".puts
# => -:1:in '<main>': private method 'puts' called for an instance of String (NoMethodError)
メソッド呼び出しの形式でなければ NameError 例外が発生します。
例bar
# => -:1: undefined local variable or method 'bar' for main (NameError)
目次
- 特異メソッド
- インスタンスメソッド
継承しているメソッド
- Exceptionから継承している特異メソッド
- NameErrorから継承しているメソッド
- Exceptionから継承しているメソッド
特異メソッド
new(error_message = "", name = nil, args = nil, priv = false) -> NoMethodError[permalink][rdoc][edit]new(error_message = "", name = nil, args = nil, priv = false, receiver:) -> NoMethodError-
例外オブジェクトを生成して返します。
- [PARAM]
error_message: - エラーメッセージを表す文字列です
- [PARAM]
name: - 未定義だったシンボルです
- [PARAM]
args: - メソッド呼び出しに使われた引数です
- [PARAM]
priv: - private なメソッドを呼び出せる形式 (関数形式(レシーバを省略した形式)) で呼ばれたかどうかを指定します
- [PARAM]
receiver: - 原因となったメソッド呼び出しのレシーバです
nom = NoMethodError.new("message", "foo", [1,2,3]) p nom.name p nom.args # => "foo" [1, 2, 3] - [PARAM]
インスタンスメソッド
args -> [object][permalink][rdoc][edit]-
メソッド呼び出しに使われた引数を配列で返します。
例begin foobar(1,2,3) rescue NoMethodError p $! p $!.name p $!.args end # => #<NoMethodError: undefined method 'foobar' for main> # => :foobar # => [1, 2, 3] private_call? -> boolRuby 2.4.0 から[permalink][rdoc][edit]-
メソッド呼び出しが private なメソッドを呼び出せる形式 (関数形式(レシーバを省略した形式)) で呼ばれたかどうかを返します。