2015-05-13 10 views
0

Я пытаюсь создать rescue, что если и когда есть ошибка Twitter::Error::NotFound (например, не существует), она просто будет продолжать цикл. Пожалуйста, помогите, спасибо.В Ruby вы можете создать спасение для твиттера, если есть ошибка, он продолжит цикл?

Ниже приведен код,

begin 
    File.open("user_ids.txt") do |file| 
    file.each do |id| 
     puts client.user("#{id}").screen_name 
    rescue Twitter::Error::NotFound => error 
     next # skip this item 
    end 
    end 
end 

Вместо метода retry существует ли метод, который можно пропустить и продолжать двигаться к следующему пункту в цикле? Я уверен, что error.rate_limit не применяется (я скопировал этот код из другого вызова службы спасения), есть ли другой способ вызова? например error.notfound.continue_with_loop

Я хотел бы создать спасение, если и когда произошла ошибка, такая как does not exist, так что она просто будет продолжать цикл. Пожалуйста, помогите, спасибо.

+0

yes 'next' продолжит и повторит следующий элемент в цикле. 'retry' будет повторять петлю с тем же элементом –

+0

ah okie doke, спасибо @TarynEast – marriedjane875

ответ

0

yes next продолжит и повторит следующий элемент в цикле. retry будет повторять цикл с тем же элементом.

Примечание: у вас недостаточно end s для всех do, которые находятся в этом методе. Так что я хотел бы попробовать:

begin 
    File.open("user_ids.txt") do |file| 
    file.each do |id| 
     puts client.user("#{id}").screen_name 
    rescue Twitter::Error::NotFound => error 
     sleep error.rate_limit.reset_in + 1 
     next # skip this item 
    end 
    end 
end 

Примечание: увидеть, как собственно отступы проясняет, когда вам не хватает в end?

Возможно, вам потребуется сдвинуть начальный/конечный блок, который в настоящее время находится вокруг участка, - просто быть рядом с кодом, который вы хотите спасти (из-за него по умолчанию используется начало/конец снаружи, а не ваш цикл)

File.open("user_ids.txt") do |file| 
    file.each do |id| 
    begin 
     puts client.user("#{id}").screen_name 
    rescue Twitter::Error::NotFound => error 
     sleep error.rate_limit.reset_in + 1 
     next # skip this item 
    end 
    end 
end 
+0

Я получаю сообщение об ошибке« twitter.rb: 297: синтаксическая ошибка, неожиданное ключевое слово_rescue, ожидающее ключевое слово_end rescue Twitter :: Ошибка: : NotFound => ошибка ^ twitter.rb: 297: ошибка синтаксиса, неожиданная => спасательного Twitter :: Error :: NotFound => ошибка ^ – marriedjane875

+0

Я отредактировал мой код выше, чтобы выглядеть точно так, как она выглядит в возвышенных – marriedjane875

+0

Аккуратно, спасибо - это также помогает, когда вы делаете это здесь, чтобы мы могли легко увидеть структуру и сказать, что чего-то не хватает .... :) –

 Смежные вопросы

  • Нет связанных вопросов^_^