试图连接谷歌,但有时“连接失败”

时间:2013-07-20 10:36:33

标签: ruby-on-rails ruby api gmail

当我尝试从Google获取联系人时,但有时当我点击链接以连接Google API时,我会收到一个错误页面,其中写有连接失败超时问题。 当我在这个错误后的另一分钟尝试它时,通常会有效,但是有什么办法可以避免这个错误吗?

向用户显示此错误消息不是非常用户友好...

编辑:一点代码

  begin
    @contacts = Contacts::Gmail.new(@email, @password)
  rescue
    @error_message = 'Incorrect password. Try it, please, again.'
  end

这基本上是最重要的部分 - 当我调用此动作时,命令

  

@contacts = Contacts :: Gmail.new(@email,@ password)

将尝试连接Google的API。问题是,有时候它会因为描述的错误消息而失败 - 就像5次尝试的情况一样。

有没有办法处理这种情况?

1 个答案:

答案 0 :(得分:1)

我想你可以使用retry

begin
  @contacts = Contacts::Gmail.new(@email, @password)
rescue Timeuot, ConnectionFailed
  retry
rescue
  @error_message = 'Incorrect password. Try it, please, again.'
end

您需要使用真正的异常类来代替Timeuot&连接失败。 这有点冒险,因为如果你得到一个永久性的错误,它可能会以无限循环结束,所以最好有一些计数器,例如重试只有3次。

有关详细信息,请查看文档http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html