Resolv::DNS - Как обрабатывать таймауты, ошибки

Я использую следующую функцию в ruby ​​на рельсах:

  def isGoogleEmailAddress?(email_domain)
    Resolv::DNS.open({:nameserver=>["8.8.8.8"]}) do |r|
      mx = r.getresources(email_domain,Resolv::DNS::Resource::IN::MX)
      if mx.any? {|server| server.exchange.to_s.downcase.include? "google"} then
        return true
      end
      return false
    end
  end

Есть ли способ решить проблему, когда Resolv дает сбой, время ожидания, ошибки и т. Д.?

Спасибо

1 ответ

Просмотрите документацию по классу Resolv и добавьте обработчики исключений для различных ошибок / исключений, которые может вызвать класс.

Их легко выбрать. Ищите классы, заканчивающиеся ошибкой и тайм-аутом.

Другие вопросы по тегам