returned = begin value = 'return value' raise rescue value ensure 'this is not return value' end puts returned def meth1 puts 1 / 0 rescue 'hoge' else 'fuga' ensure 'piyo' end meth1 catch :triple_loop do loop do puts 'one' loop do puts 'two' loop do puts 'three' throw :triple_loop end end end end catch(:foo) { throw :foo, 'hoge' }