Выход из блока в Ruby

Когда вы используете блоки в своём коде на Ruby, одной из немаловажных задач является корректный выход из них по какому-либо условию. Для этого обычно используют ключевые слова `next`, `break`, `return` и конструкцию `catch/throw`. В большинстве случаев для выхода из текущей итерации блока или самого блока вам нужно использовать `break`, а для вложенных блоков - `catch/throw`. Эти варианты сразу же прервут выполнение и передадут управление коду, следующему за вызывающим методом или блоком `catch`. При использовании ключевого слова `next` вы перейдёте к следующей итерации блока. Но если итераций больше нет, то выполнится код, следующий за `yield` или `block.call` в методе, которому вы передали блок. А при использовании `return` вы, соответственно, выйдете полностью из метода, в котором этот блок объявлен.

(Примеры кода смотрите на изображениях)

Какими способами выходите из блока вы? Знаете ли вы ещё варианты завершить выполнение блока (ну, конечно, кроме `raise` и `exit/abort`)?

Выход из блока в Ruby | Сетка — социальная сеть от hh.ru Выход из блока в Ruby | Сетка — социальная сеть от hh.ru
Выход из блока в Ruby | Сетка — социальная сеть от hh.ru Выход из блока в Ruby | Сетка — социальная сеть от hh.ru Выход из блока в Ruby | Сетка — социальная сеть от hh.ru