i checked what happen at error case.
1. By break, throwobj is set to th->errinfo in throw RubyVM command.
2. In rb_thread_s_handle_interrupt, trap(TAG) throwobj, and call finalizer via RUBY_VM_CHECK_INTS(th) before JUMP_TAG.
3. In finalizer, th->errinfo is used by raise.