【发布时间】:2015-04-09 03:14:23
【问题描述】:
我在 Rails 中有一些东西可以处理大量事件。所有事件都是相互独立的。如果其中一个事件格式不正确或其他什么,它现在就会爆炸,并停止处理之后的事件。
我想改为尝试/捕获,然后通过堆栈跟踪等将错误传播到我们所有的各种错误跟踪服务(New Relic、日志等)。有什么好办法吗?
我本质上希望它表现得好像错误没有被捕获,用于跟踪,但继续进行,用于事件处理。
【问题讨论】:
-
你不能在 Ruby 中做到这一点。由处理异常的任何代码来恢复处理下一条记录。执行流程不能一直跟随异常到堆栈上发生错误报告的地方,然后再回到抛出异常的地方。您需要捕获异常并明确记录它,而不是依赖某些顶级错误跟踪软件。
标签: ruby-on-rails ruby-on-rails-4 error-handling