在Rails中,我可以抛出异常但继续吗?

时间:2015-04-09 03:14:24

标签: ruby-on-rails ruby-on-rails-4 error-handling

我在Rails中有一些处理大量事件的东西。所有活动都是相互独立的。如果其中一个事件出现格式错误或其他事件,那么它现在会爆炸,并停止处理之后的事件。

我想尝试/ catch,然后将错误传播到我们所有的各种错误跟踪服务(New Relic,日志等)和堆栈跟踪等等。有没有办法做到这一点?

我基本上希望它的行为好像没有捕获错误,用于跟踪,而是继续进行事件处理。

2 个答案:

答案 0 :(得分:0)

您可以挽救错误,将其传递给NewRelic,继续您的欢乐...

def my_method
  # do things...
rescue => exception
  NewRelic::Agent.notice_error(exception)
end

答案 1 :(得分:0)

是的,这很有可能。例如,让我们处理一堆事件。我们将抢救所有StandardError后代的错误,将其记录到honeybadger.io,然后继续处理其余事件:

events.each do |event|
  begin
    process(event)
  rescue StandardError => error
    Honeybadger.notify(error)
  end
end