这个方法'方法'是否抛出此错误消息?

时间:2017-11-15 09:10:53

标签: ruby error-handling

红宝石代码

class Word < Array
   def g
      puts "JJ"
   end
end

w = Word.new([4, 6])
puts Word.method(:g)

产生以下错误:

main.rb:9:in `method': undefined method `g' for class `#<Class:Word>' (NameError)
        from main.rb:9:in `<main>'

因为gWord的实例方法,而不是其类方法。

看起来实际上抛出此错误消息的方法是method。如果不是这样的话,我将无法解释如何产生这样的错误信息。

它实际上是抛出此错误消息的方法吗?

在这里,我们将符号:g传递给方法Word.method,并等待其执行。 ruby解释器不能事先知道它会是一个错误,只有当方法method检查一个名称类似于符号:g的函数的存在时,它是否(方法)决定一个错误存在。控制台/口译员事先无法知道错误。

1 个答案:

答案 0 :(得分:0)

是。说明:

in `method'
错误信息中的

就是指。