るりまサーチ

最速Rubyリファレンスマニュアル検索!
153件ヒット [1-100件を表示] (0.101秒)
トップページ > クエリ:a[x] > クエリ:throw[x]

別のキーワード

  1. _builtin to_a
  2. matrix to_a
  3. to_a
  4. dbm to_a
  5. argf.class to_a

ライブラリ

クラス

モジュール

キーワード

検索結果

<< 1 2 > >>

Kernel.#throw(tag, value = nil) -> () (18229.0)

Kernel.#catchとの組み合わせで大域脱出を行います。 throw は同じ tag を指定した catch のブロックの終わりまでジャンプします。

...Kernel.#catchとの組み合わせで大域脱出を行います。 throw
は同じ tag を指定した catch のブロックの終わりまでジャンプします。

throw
は探索時に呼び出しスタックをさかのぼるので、
ジャンプ先は同じメソッド内にあるとは限...
...同じ tag で待っている catch が存在しない場合は、例外で
スレッドが終了します。

同じ tag であるとは Object#object_id が同じであるという意味です。

@param tag catch の引数に対応する任意のオブジェクトです。
@param value catch の...
...戻り値になります。
@raise ArgumentError 同じ tag で待っている catch が存在しない場合に発生します。

//emlist[例][ruby]{
def foo
throw
:exit, 25
end

ret = catch(:exit) do
begin
foo
some_process() # 絶対に実行されない
10
ensure
puts "...
...戻り値になります。
@raise UncaughtThrowError 同じ tag で待っている catch が存在しない場合に発生します。

//emlist[例][ruby]{
def foo
throw
:exit, 25
end

ret = catch(:exit) do
begin
foo
some_process() # 絶対に実行されない
10
ensure
p...

MiniTest::Assertions#assert_throws(tag, message = nil) { ... } -> true (15234.0)

与えられたブロックを評価中に、与えられたタグが Kernel.#throw された場合、検査にパスしたことになります。

...に、与えられたタグが Kernel.#throw された場合、検査にパスしたことになります。

@param tag 与えられたブロック評価中に Kernel.#throw されるタグを任意のオブジェクトとして指定します。

@param message 検査に失敗した場合に表示...
...ージを指定します。
文字列か Proc を指定します。Proc である場合は Proc#call した
結果を使用します。

@raise MiniTest::Assertion 与えられたタグが Kernel.#throw されなかった場合に発生します。

@see Kernel.#throw...

UncaughtThrowError (12028.0)

Kernel.#throw に指定した tag に対して一致する Kernel.#catch が存在しない場合に発生します。

...Kernel.#throw に指定した tag に対して一致する
Kernel.#catch が存在しない場合に発生します。

throw
"foo", "bar"
# => (例外発生) UncaughtThrowError: uncaught throw "foo"...

UncaughtThrowError#tag -> object (9122.0)

Kernel.#throw に指定した tag を返します。

...Kernel.#throw に指定した tag を返します。

//emlist[例:][ruby]{
def do_complicated_things
throw
:uncaught_label
end

begin
do_complicated_things
rescue UncaughtThrowError => ex
p ex.tag # => ":uncaught_label"
end
//}...

UncaughtThrowError#value -> object (9122.0)

Kernel.#throw に指定した value を返します。

...Kernel.#throw に指定した value を返します。

//emlist[例][ruby]{
def do_complicated_things
throw
:uncaught_label, "uncaught_value"
end

begin
do_complicated_things
rescue UncaughtThrowError => ex
p ex.value # => "uncaught_value"
end
//}...

絞り込み条件を変える

VALUE rb_catch(const char *tag, VALUE (*proc)(), VALUE data) (6330.0)

catch と同等の動作を実行します。

...catch と同等の動作を実行します。

まず proc に、yield された値と data を渡して実行します。
その途中で tag が throw されたら rb_catch 全体を終了します。

throw
が発生した場合はその値を返します。
throw
が発生しなかったとき...
...を返します。

static VALUE
foo_yield(VALUE a, VALUE b)
{
return rb_yield(b);
}

static VALUE
foo_catch(VALUE obj)
{
return rb_catch("footag", foo_yield, INT2FIX(2));
}

static VALUE
foo_abort(VALUE obj)
{
return rb_throw("footag", Qnil);
}

void
In...
...it_foo(void)
{
VALUE Foo = rb_define_class("Foo", rb_cObject);
rb_define_method(Foo, "catch", foo_catch, 0);
rb_define_method(Foo, "abort", foo_abort, 0);
}...

Object#must_throw(tag) -> true (6229.0)

自身を評価中に、与えられたタグが Kernel.#throw された場合、検査にパスしたことになります。

...たタグが Kernel.#throw された場合、検査にパスしたことになります。

@param tag 自身を評価中に Kernel.#throw されるタグを任意のオブジェクトとして指定します。

@raise MiniTest::Assertion 与えられたタグが Kernel.#throw されなかった場...
...合に発生します。

@see MiniTest::Assertions#assert_throws...

void rb_throw(const char *tag, VALUE val) (6216.0)

throw の実体。返り値を val として、 tag を catch したところまでジャンプします。

...
throw
の実体。返り値を val として、
tag を catch したところまでジャンプします。

rb_catch も参照してください。...

static VALUE rb_f_throw(int argc, VALUE *argv) (6200.0)

Kernel.#catch {|tag| .... } -> object (6146.0)

Kernel.#throwとの組み合わせで大域脱出を行います。 catch はブロックを実行します。

...Kernel.#throwとの組み合わせで大域脱出を行います。 catch はブロックを実行します。

ブロックの実行中に tag と同一のオブジェクトを引数とする Kernel.#throw が行われた
場合は、その throw の第二引数を戻り値として、ブロック...
...ブロックパラメータ tag に
渡されます。

@param tag タグとなる任意のオブジェクトです。
@return ブロックの返り値か、対応するthrowの第二引数を返り値として返します。

//emlist[例][ruby]{
result = catch do |tag|
for i in 1..2
for j in...
...1..2
for k in 1..2
throw tag, k
end
end
end
end

p result #=> 1
//}

@see Kernel.#throw...

絞り込み条件を変える

Kernel.#catch(tag) {|tag| .... } -> object (6146.0)

Kernel.#throwとの組み合わせで大域脱出を行います。 catch はブロックを実行します。

...Kernel.#throwとの組み合わせで大域脱出を行います。 catch はブロックを実行します。

ブロックの実行中に tag と同一のオブジェクトを引数とする Kernel.#throw が行われた
場合は、その throw の第二引数を戻り値として、ブロック...
...ブロックパラメータ tag に
渡されます。

@param tag タグとなる任意のオブジェクトです。
@return ブロックの返り値か、対応するthrowの第二引数を返り値として返します。

//emlist[例][ruby]{
result = catch do |tag|
for i in 1..2
for j in...
...1..2
for k in 1..2
throw tag, k
end
end
end
end

p result #=> 1
//}

@see Kernel.#throw...
<< 1 2 > >>