Project

General

Profile

Actions

Feature #3627

closed

catchのブロックを再実行するメソッド

Added by metanest (Makoto Kishimoto) over 14 years ago. Updated over 13 years ago.

Status:
Rejected
Assignee:
-
Target version:
[ruby-dev:41892]

Description

=begin
catchとthrowで、ネストを飛び越えたbreakのようなことができるわけですが、同様のネストを飛び越えたnextのようなもの、を現在のrubyでやるのは少々面倒です。
retryを利用して、

tag = Class.new Exception
begin
 ...
 raise tag
 ...
rescue tag
 retry
end

という手もないではありませんが無理矢理っぽいです。
throwのかわりに、なにか別のメソッド(rewindという名前はどうでしょう?)を実行すると、catchのブロックが再実行される、というのはどうでしょうか?
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0