【问题标题】:In ActiveJob, how to catch any exception在 ActiveJob 中,如何捕获任何异常
【发布时间】: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 捕获任何通用异常?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rails-activejob


    【解决方案1】:

    试试这个

    class GuestsCleanupJob < ActiveJob::Base
      ...
    
      rescue_from(StandardError) do |exception|
       # Do something with the exception
      end
    
      ...
    end
    

    【讨论】:

    • 谢谢,这是正确的技术!在我的例子中,异常处理块本身有一个失败的表达式,导致了静默错误
    • 我遗漏了一些东西,这对我来说不适用于 Rails 5.2.1
    猜你喜欢
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 2016-07-11
    • 2011-08-25
    • 2011-04-03
    相关资源
    最近更新 更多