我正在执行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
答案 0 :(得分:1)
您正在捕捉半特定异常。要捕获特定异常,请将StandardError
更改为您感兴趣的错误。
您可以在e
中获得所需的所有信息,因此,如果您想了解更多信息,Rails.logger.debug(e.class)
会向log/development.log
添加信息,以便您调整rescue
。