1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
class S2
def to_str
'x2'
end
end
def f1
throw :undefined
rescue Exception
puts "error: #{$!.inspect}"
end
def f2
throw S2.new, 'hello'
rescue Exception
puts "error: #{$!.inspect}"
else
puts 'else'
ensure
puts 'ensure'
end
catch :x1 do
#f1
end
x = catch :x2 do
f2
puts 'bar'
end
p x
puts '-'*10
catch :a do
catch :b do
catch :c do
throw :d rescue p $!
begin
throw :a
ensure
throw :b
end
puts 'in c'
end
puts 'c'
end
puts 'b'
end
puts 'a'
x = catch :foo do |*args|
p args
123
end
p x
|