在Rails中使用救援

时间:2013-02-25 01:52:51

标签: ruby-on-rails ruby-on-rails-3 error-handling

我正试图挽救任务可能发生的错误。我可以毫无问题地解救,但如果我想采取一些行动怎么办?

例如,这很好用:

new_object = Product.find_by_id(412) rescue nil

但是,我想打印一些东西并采取其他行动。那么我怎样才能得到这样的东西:

new_object = Product.find_by_id(412) rescue nil
                                        puts "what happened"
                                        next
                                     end

2 个答案:

答案 0 :(得分:2)

使用以下

begin
  new_object = Product.find_by_id(412)
rescue
  new_object = nil
  puts 'what happened'
  next
end

答案 1 :(得分:0)

begin
  foo = Product.find_by_id!(412)
rescue ActiveRecord::RecordNotFound
  logger.warn "Could not find foo" 
end