filename=eval.c
macro=false
private=false
type=VALUE
name=rb_protect
params=(VALUE (*proc)(), VALUE data, int *state)


初出: [[ruby-dev:4064]]

proc(data) を評価中のあらゆる大域脱出(例外を含む)を捕捉します。

  val = rb_protect(func, arg, &status);
  if (status != 0) {
      puts("大域脱出が起きた");
      rb_jump_tag(status);
  }

