2013-11-12 3 views
3

Я пытаюсь сохранить блок с оператором retry, но получаю синтаксическую ошибку: Invalid retry. Как сохранить его правильно?Как сохранить утверждение retry в объекте Proc

retries = 3 
proc = Proc.new do 
    if retries > 0 
    p " Retries left: #{retries}" 
    retries -= 1 
    retry 
    end 
end 
begin 
    ... 
rescue SomeErrorOne 
    proc.call 
rescue SomeErrorTwo 
    proc.call 
end 

ответ

3

Попробуйте изменить retry к redo. Я думаю, что некоторые изменения были внесены в Ruby 1.9 по мере злоупотребления ключевыми словами retry.

Разницу можно найти здесь: http://rubyquicktips.com/post/1122838559/redo-vs-retry См. Комментарий внизу.

+0

Я новичок в Ruby, поэтому спасибо за помощь! –

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