2013-07-20 3 views
0

Когда я пытаюсь найти контакты из Google, но иногда, когда я нажимаю на ссылку для подключения с Google API, я получаю страницу с ошибкой, где написано, что Connection Failed или Тайм-аут выпуска. Когда я пытаюсь это сделать через минуту после этих ошибок, он обычно работает, но есть ли способ избежать этой ошибки?Попытка подключения Google, но иногда «Connection failed»

Это не очень удобный для пользователя, чтобы отобразить только сообщение об ошибке для пользователей ...

EDIT: Немного кода

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

В основном это самая важная часть - когда я называть это действие, команда

@contacts = Контакты :: Gmail.new (@email, @password)

попытается связать API Google. Проблема в том, что иногда она терпит неудачу с сообщениями об ошибках, о которых говорится - это как в 1 случае из 5 попыток.

Есть ли способ справиться с этой ситуацией?

+0

Может быть, вы предоставляете некоторые детали? –

+0

без какого-либо кода его немного сложно поддерживать – Lichtamberg

+0

Я добавил некоторый код, но это действительно простой и простой материал, в основном эта строка называется Google API. – user984621

ответ

1

Я думаю, что вы можете использовать retry

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

Вы должны поставить реальные классы исключений вместо Timeuot & ConnectionFailed. Это немного рискованно, потому что если вы получите постоянную ошибку, это может закончиться бесконечным циклом, поэтому было бы разумно иметь какой-то счетчик и повторить попытку только 3 раза, например.

Для получения более подробной информации ознакомьтесь с Docs http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html