在 ActiveJob 中,如何捕获任何异常
Posted
技术标签:
【中文标题】在 ActiveJob 中,如何捕获任何异常【英文标题】:In ActiveJob, how to catch any exception 【发布时间】:2015-11-18 12:24:02 【问题描述】:ActiveJob docs for exception handling 提供了如何在作业上下文中执行异常处理的示例:
class GuestsCleanupJob < ActiveJob::Base
queue_as :default
rescue_from(ActiveRecord::RecordNotFound) do |exception|
# Do something with the exception
end
def perform
# Do something later
end
end
我在我正在构建和捕获某些特定异常的应用程序中使用此技术。我的问题是,如何捕获所有异常?
我正在捕获各种异常并以每种方式执行相同的过程,所以我想干掉我的代码,而且在我当前的实现中,某些异常被忽略,这意味着在某些情况下我的工作会默默地失败。
如何使用 ActiveJob 捕获任何通用异常?
【问题讨论】:
【参考方案1】:试试这个
class GuestsCleanupJob < ActiveJob::Base
...
rescue_from(StandardError) do |exception|
# Do something with the exception
end
...
end
【讨论】:
谢谢,这是正确的技术!在我的例子中,异常处理块本身有一个失败的表达式,导致了静默错误 我遗漏了一些东西,这对我来说不适用于 Rails 5.2.1以上是关于在 ActiveJob 中,如何捕获任何异常的主要内容,如果未能解决你的问题,请参考以下文章