Kernel.#throw に指定した tag に対して一致する Kernel.#catch が存在しない場合に発生します。
throw "foo", "bar" # => (例外発生) UncaughtThrowError: uncaught throw "foo"
tag -> object
[permalink][rdoc]Kernel.#throw に指定した tag を返します。
def do_complicated_things
throw :uncaught_label
end
begin
do_complicated_things
rescue UncaughtThrowError => ex
p ex.tag # => ":uncaught_label"
end
to_s -> String
[permalink][rdoc]self を tag を含む文字列表現にして返します。
def do_complicated_things
throw :uncaught_label
end
begin
do_complicated_things
rescue UncaughtThrowError => ex
p ex.to_s # => "uncaught throw :uncaught_label"
end
value -> object
[permalink][rdoc]Kernel.#throw に指定した value を返します。
def do_complicated_things
throw :uncaught_label, "uncaught_value"
end
begin
do_complicated_things
rescue UncaughtThrowError => ex
p ex.value # => "uncaught_value"
end