From: Makoto Kishimoto Date: 2010-07-29T17:33:11+09:00 Subject: [ruby-dev:41892] [Feature #3627] catchのブロックを再実行するメソッド Feature #3627: catchのブロックを再実行するメソッド http://redmine.ruby-lang.org/issues/show/3627 起票者: Makoto Kishimoto ステータス: Open, 優先度: Low カテゴリ: core, Target version: 2.0 catchとthrowで、ネストを飛び越えたbreakのようなことができるわけですが、同様のネストを飛び越えたnextのようなもの、を現在のrubyでやるのは少々面倒です。 retryを利用して、 tag = Class.new Exception begin  ...  raise tag  ... rescue tag  retry end という手もないではありませんが無理矢理っぽいです。 throwのかわりに、なにか別のメソッド(rewindという名前はどうでしょう?)を実行すると、catchのブロックが再実行される、というのはどうでしょうか? ---------------------------------------- http://redmine.ruby-lang.org