Rails中的非致命性救援

时间:2014-03-12 23:43:19

标签: ruby-on-rails ruby rescue

我试图运行有时会失败的命令。当它失败时,它会引发异常。

我想要做的只是静静地记录错误并继续执行它下面的下一行,而不是中止并进入“救援”。块。我该怎么做呢?

我目前的代码如下:

  rescue_from 'Gibbon::MailChimpError' do |exception|
    logger.error("MAILCHIMP: #{exception}")
  end

当我调用Mailchimp API时,有时会出现错误,这会中断我的应用程序流。我只是希望它继续执行,就像没有发生任何事情一样,只需注意日志中有错误。

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样:

def rescuing(&block)
  begin
    yield
  rescue NameError => e
    puts "(Just rescued: #{e.inspect})"
  end
end

rescuing do
  puts "This is dangerous"
  raise NameError
end

puts "... but I'm still alive"

显然,您必须将NameError替换为您希望受到保护的例外。