2010-12-16 78 views
2

我是一名铁轨程序员。而轨道总是告诉我,我有“NoMethodError”。为什么我不能得到一个MethodError?我想要一个MethodError。为什么我没有收到方法错误?

请帮帮我。

编辑:

这里是我的代码:

42.this_is_a_method 
+0

向我们展示你如何得到使用Rails了'NoMethodError'。你可以把代码放在 – 2010-12-16 00:05:59

+0

吗? – 2010-12-16 00:08:18

+6

请告诉我,这不是一个笑话。 – 2010-12-16 00:13:34

回答

3

Ruby没有MethodError。但你可以做一个!

class MethodError < NoMethodError; end 

现在,赶上这样所有NoMethodErrors:

class Object 
    def method_missing(m) 
    raise MethodError, "undefined method `#{m}' for #{self.inspect}:#{self.class}" 
    end 
end 
+4

太复杂了。只要做'MethodError = NoMethodError'。 – 2010-12-16 00:35:42

+2

@Joerg:如果你提出了一个'MethodError',你会得到'NoMethodError:NoMethodError'。这是因为'MethodError.name'会返回'NoMethodError'。 – 2010-12-16 03:11:02

3

你会得到一个NoMethodError因为Fixnum类不具备该类的实例定义this_is_a_method

相关问题