Обработайте прерывание и повторите попытку в Ruby, пока .. не выполните цикл - PullRequest
2 голосов
/ 13 января 2020

Можно ли обработать SIGINT в пределах until .. do l oop и перейти к следующей итерации? Я только смог найти примеры этого в циклах и функциях for. Я пытался (из примера)

test = "hey"
until test == "hi" do
        test = gets.chomp
end rescue retry

, но этот простой выход завершился, когда я нажал Ctrl + c. Я также получаю сообщение об ошибке, когда помещаю rescue в блок.

1 Ответ

1 голос
/ 13 января 2020

решаемая. Мне просто нужно было завернуть l oop в begin .. end

test = "hey"
begin
        until test == "hi" do
               test = gets.chomp
        end
rescue Interrupt
        retry
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...