如何在rails中拯救特定的异常

时间:2017-04-10 18:57:10

标签: ruby ruby-on-rails-4

我正在执行sql函数并捕获标准错误。这是正确的方法吗?如果不是我怎么能抓住特定的例外?

    query = ActionController::Base.helpers.sanitize(sql)
    begin
      result = ActiveRecord::Base.connection.exec_query(query)

    rescue StandardError => e
      raise Programmability::FatalError.new(nil, e.inspect)
    end

1 个答案:

答案 0 :(得分:1)

您正在捕捉半特定异常。要捕获特定异常,请将StandardError更改为您感兴趣的错误。

您可以在e中获得所需的所有信息,因此,如果您想了解更多信息,Rails.logger.debug(e.class)会向log/development.log添加信息,以便您调整rescue