这是默默忽略Ruby异常的最短路径

时间:2011-02-23 10:43:50

标签: ruby exception-handling

我正在寻找类似的东西:

raise Exception rescue nil

但我发现的最短路径是:

begin
  raise Exception
rescue Exception
end

3 个答案:

答案 0 :(得分:27)

这是由ActiveSupport提供的:

suppress(Exception) do
   # dangerous code here
end

http://api.rubyonrails.org/classes/Kernel.html#method-i-suppress

答案 1 :(得分:26)

def ignore_exception
   begin
     yield  
   rescue Exception
   end
end

现在将代码写为

ignore_exception { puts "Ignoring Exception"; raise Exception; puts "This is Ignored" }

答案 2 :(得分:8)

将左侧包裹在括号中:

(raise RuntimeError, "foo") rescue 'yahoo'

请注意,仅当异常是 StandardError 或其子类时才会进行救援。有关详细信息,请参阅http://ruby.runpaint.org/exceptions