遇到错误后使Ruby/Rails继续方法

Ric*_*sta 3 ruby ruby-on-rails ruby-on-rails-3

def checkdomains
  @domains = Domain.all

  #@domains.where(:confirmed => "yes").each do |f|
  @domains.each do |f|
    r = Whois.whois(f.domain)
    if r.available? == true
      EmailNotify.notify_email(f).deliver
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当它出现一个无效的url(whois gem发出错误)时,此方法崩溃,并且不会继续检查其余的域.有什么方法可以让它继续检查其余的域,即使它崩溃了吗?至少在我可以解决每个域的搜索问题之前.

cbr*_*ron 9

  @domains.each do |f|
    begin
      r = Whois.whois(f.domain)
      if r.available? == true
        EmailNotify.notify_email(f).deliver
      end
    rescue Exception => e
      puts "Error #{e}"
      next   # <= This is what you were looking for
    end
  end
Run Code Online (Sandbox Code Playgroud)