如何在ruby中捕获方法调用

如何在ruby中捕获方法调用,ruby,Ruby,我想捕获方法调用,然后显示输出 class A end 如果我运行新的A.see,它将捕获并打印“未知方法” 我不熟悉该语言当您向对象发送消息时,该对象将执行它在其方法查找路径上找到的第一个与消息同名的方法。如果找不到任何这样的方法,它将引发NoMethodError异常,除非您为对象提供了名为method\u missing的方法。method\u missing方法传递不存在的方法的符号、在原始调用中传递的参数数组以及传递给原始方法的任何块 class A def method_

我想捕获方法调用,然后显示输出

class A 

end
如果我运行新的A.see,它将捕获并打印“未知方法”


我不熟悉该语言

当您向对象发送消息时,该对象将执行它在其方法查找路径上找到的第一个与消息同名的方法。如果找不到任何这样的方法,它将引发NoMethodError异常,除非您为对象提供了名为
method\u missing
的方法。
method\u missing
方法传递不存在的方法的符号、在原始调用中传递的参数数组以及传递给原始方法的任何块

class A 
  def method_missing(m, *args, &block)  
    puts "There's no method called #{m} here -- please try again."  
    super
  end  
end

这已经触发了一个NoMethodError,默认情况下会停止您的程序

NoMethodError: undefined method `see' for A:Class

根据经验,如果调用没有得到实际处理,我会将
super
添加到任何
方法\u缺少的
实现的末尾。你为什么要这样做?我对语言学习很陌生,我很惊讶这个网站上的人不是很有帮助,但是Badholl先生,他们在经过个人编辑后加入了URI AGASI评论。。如果我不想犯那个错误,我会打电话给超级……你会问什么?