VALUE rb_protect(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); }