Ruby异常处理:无法抑制NoMethodError

Aar*_* Fi 3 ruby

我只是想让我的方法调用来抑制它反过来调用的方法中可能出现的所有"NoMethodError"异常.

def foo
  begin
    bar1
    bar2
  rescue Exception
    return '--'
  end
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用.NoMethodError不断被提升到最高级别.

undefined method对于nil:NilClass'(NoMethodError),确切的错误是[]'

Mar*_*usQ 9

class Object
    def method_missing(meth,*args)
        # do whatever you want here
        end
    end
Run Code Online (Sandbox Code Playgroud)

如果你想要一些不那么全局的东西,你可以在一个更窄的类,甚至一个特定的实例上做到这一点:

class << my_object
    # and so forth
Run Code Online (Sandbox Code Playgroud)