diff options
Diffstat (limited to 'mrbgems/mruby-catch/mrblib/catch.rb')
| -rw-r--r-- | mrbgems/mruby-catch/mrblib/catch.rb | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/mrbgems/mruby-catch/mrblib/catch.rb b/mrbgems/mruby-catch/mrblib/catch.rb index f8dcb3e84..68b165c8d 100644 --- a/mrbgems/mruby-catch/mrblib/catch.rb +++ b/mrbgems/mruby-catch/mrblib/catch.rb @@ -1,22 +1,17 @@ class ThrowCatchJump < Exception + attr_reader :_tag, :_val def initialize(tag, val) - @tag = tag - @val = val + @_tag = tag + @_val = val super("uncaught throw #{tag.inspect}") end - def _tag - @tag - end - def _val - @val - end end module Kernel - def catch(tag, &block) + def catch(tag=Object.new, &block) block.call(tag) rescue ThrowCatchJump => e - unless e._tag == tag + unless e._tag.equal?(tag) raise e end return e._val |
