当我尝试从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次尝试的情况一样。
有没有办法处理这种情况?
答案 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