Maybe I'm not understanding what you are getting at, but:
irb(main):001:0> loop do
irb(main):002:1* begin
irb(main):003:2* raise 666
irb(main):004:2> rescue
irb(main):005:2> puts "rescue"
irb(main):006:2> raise
irb(main):007:2> end
irb(main):008:1> end
rescue
TypeError: exception class/object expected
from (irb):3:in `raise'
from (irb):3
from (irb):1:in `loop'
from (irb):8
Seems to work fine... if you get the syntax right! As I understand it,
"begin...rescue...end" is the construct, just like "class...end" or
"def...end". None of these are blocks, though, just different language
constructs.
Or perhaps you meant something I am missing?
Chris